[iPhone] OHAttributedLabel でラベルの装飾

ラベル文字の一部を強調したい
リンクを貼って表示したい
という要望におこたえするのがこの OHAttributedLabel です。
OHAttributedLable は UILabel のサブクラスだそうですが
ただ、これを組み込むのは少々手間がかかったので…

OHAttributedLable を組み込む

 
最初に、GitHub からプロジェクトをゲットします
https://github.com/AliSoftware/OHAttributedLabel
 
ついでに、このページに
How to use in your project
というのがあるので、これを元に進めます。

  1. Include the OHAttributedLabel.xcodeproj project in your Xcode4 workspace
  2. Build this OHAttributedLabel.xcodeproj project once for the “iOS Device” 
  3. Add libOHAttributedLabel.a and CoreText.framework to your “Link Binary With Libraries” Build Phase of your app project.
  4. Select the libOHAttributedLabel.a that has just been added to your app project…
  5. Add the -ObjC flag in the “Other Linker Flags” Build Setting (if not present already)

1. と4. は Xcode4 のバグのせいで必要なのですが、Xcode5 ではいらないはずです
(Xcode5.0.2でテストしました)
 

OHAttributedLabel.xcodeproj を入れる

 
GitHub からダウンロードすると、OHAttributedLabel.xcodeproj と一緒に AttributedLabel Example
というサンプルプロジェクトもおまけでついてきます
 
新しく Single View Application のプロジェクトを作ります
そこへ OHAttributedLabel のフォルダのをコピペします。
 
スクリーンショット 2014-02-19 22.21.36
 
「Add Files to …」で OHAttributedLabel.xcodeproj をプロジェクトに追加します。
include なので #include ?? と一瞬考えたりしたのは、私だけでしょうか
 
スクリーンショット 2014-02-19 22.24.05
 
ここで、OHAttributedLabel.xcodeproj の左側の三角印でドロップダウンできないといけません
できていない場合は、フォルダのコピペ先に問題があるか、コピーも追加するように指定していないなどです。
 
スクリーンショット 2014-02-19 22.37.18
 
OHAttributedLabel.xcodeproj の下の Projects のなかに
libOHAttributedLabel.a がある事を確認
尚、最終的には赤文字が黒になります
 

libOHAttributedLabel.a と CoreText.framework の追加

 
「Build Phases」->「Link Binary With Libraries」の
「+」をクリックして
libOHAttributedLabel.a と
CoreText.framework を追加します
 
スクリーンショット 2014-02-19 22.40.52
 
libOHAttributedLabel.a は Workspace の下にあります
CoreText と検索すると CoreText.framework が見つかります
 
スクリーンショット 2014-02-19 22.46.48
 
スクリーンショット 2014-02-19 22.50.21
 

-ObjC flag の設定

 
「Build Setting」->「Other Linker Flags」に
-ObjC を入れます。
 
スクリーンショット 2014-02-19 22.52.58
 
これでビルド、実行すると libOHAttributedLabel.a がこの環境下で正しく生成され
黒文字になり、Build Success となるはずです。
 

OHAttributedLabel.xcodeproj を入れる

 
ここまで長くなりましたが、あとは決まったやり方で設定します。
OHAttriibutedLabel.h を入れます。
ここまでのビルドに問題があると
OHAttributedLabel が見当たらないとなります。
 
また、ラベルは UILabel ではなく
OHAttributedLabel とします。
 
スクリーンショット 2014-02-19 16.13.26
 
sotryboard で Label を選択して
Custom Class をOHAttributedLabel に変更します
 
ViewController.h

 
ViewController.m

 
結果はこのようになります
oha
 
Line Breaks の warning がでるかもしれません、Label の Attributes inspector で Line Breaks を Clip などにすると消えます。
 

ページのトップへ戻る
 
sponsored link

シェアする

  • このエントリーをはてなブックマークに追加

フォローする