お使いのブラウザは、バージョンが古すぎます。

このサイトは、Internet Explore8・Internet Explore9には対応しておりません。
恐れ入りますが、お使いのブラウザをバージョンアップしていただきますよう宜しくお願いいたします。

【iOS】表示テキストから動的にUILabelのサイズを変更

表示テキストから動的にUILabelのサイズを変更するため、iOS6以前で作成していたソースコードをiOS7に対応すると、Deprecations(非推奨)の警告が出てしまうので修正します。

iOS6以前のコード

文字列からサイズを取得するのに、iOS6までは
‘sizeWithFont:constrainedToSize:lineBreakMode:’メソッドを使用していました。

CGSize size = [body
                   sizeWithFont:[UIFont systemFontOfSize:13.0]
              constrainedToSize:CGSizeMake(284.0, 480.0)
                  lineBreakMode:NSLineBreakByWordWrapping];

しかし、iOS7に対応すると以下の警告が表示されます。

‘sizeWithFont:constrainedToSize:lineBreakMode:’ is deprecated: first deprecated in iOS 7.0 – Use -boundingRectWithSize:options:attributes:context:

iOS7では非推奨みたいですね。

警告でも言われている通り...
「boundingRectWithSize:options:attributes:context:」メソッドを使いなさいってことで対応したいと思います。

変更後

「boundingRectWithSize:options:attributes:context:」メソッドに変更して描画に必要なサイズを取得していきます。

CGSize size = [body 
                   boundingRectWithSize:CGSizeMake(280, 480)
                                options:(NSStringDrawingUsesLineFragmentOrigin|NSStringDrawingUsesFontLeading)
                             attributes:[NSDictionary dictionaryWithObject:[UIFont systemFontOfSize:13.0] forKey:NSFontAttributeName]
                                context:nil].size;

これで、警告が消えましたので引き続きiOS7対応の開発が進めます。

それでは。

コメントをどうぞ

メールアドレスは公開されません。* が付いている欄は必須項目です。


お気軽にお問い合わせください。

日本VTR実験室では、お仕事のご依頼、ブログ・コラムのご感想などを受け付けております。
アプリ開発・コンテンツ制作でお困りでしたら、お気軽にご相談ください。
ご連絡お待ちしております。

お問い合わせはこちらから

03-3541-1230

info@nvtrlab.jp

電話受付対応時間:平日AM9:30〜PM6:00