2017-12-14 4 views
0

私は最近、iOS 11と互換性を持たせるためにアプリで微妙な調整を始めました。ありがたいことにそのほとんどがそうです。フォントアイコンをタップまたは保持するときの疑問符

私はツールバーでfontelloのttfファイルで提供されるアイコンをタップまたはタップして保持すると、疑問符ボックスが表示されます。アイコンの

例:

menu = [[UIBarButtonItem alloc] initWithTitle:@"\ue811" style:UIBarButtonItemStylePlain target:self action:@selector(openMenu:)]; 
    [menu setTitleTextAttributes:@{NSFontAttributeName: 
             [UIFont fontWithName:@"fontello" 
                 size:23], 
            NSForegroundColorAttributeName:[[UIColor alloc] initWithWhite:1.f alpha:1.f]} 
         forState:UIControlStateNormal]; 

それは10.3.1シミュレータで正常に動作します。ちょうどiOS 11がうまくいっているようだ。私は、OSのアップデートを意味するデバイスの修正について読んだが、シミュレータは11.2を実行しているので、理論的には修正する必要がある。

他にこの問題がありますか?修正を知っていますか?

答えて

1

ちょうどをUIControlStateSelectedのタイトルのテキスト属性を追加します。

[menu setTitleTextAttributes:@{NSFontAttributeName: 
            [UIFont fontWithName:@"fontello" 
                size:23], 
           NSForegroundColorAttributeName:[UIColor greenColor]} 

forState:UIControlStateSelected];

+0

私があなたの回答として書いていたのは、あなたも正しいです。どういうわけか、iOS 1では、通常の設定と選択/強調表示が必要です。選択したときに警告が表示されたので、強調表示しなければなりませんでした。 – ChrisOSX

0

コメントに記載されているとおり、iOS 11では、通常の状態と選択/強調表示の設定が必要です。以下は私のために働いているものです。あなたが持っている多くのボタンに応じて余分なコードを持つことは理想的ではありませんが、まあまあです。

[menu setTitleTextAttributes:@{NSFontAttributeName:[UIFont fontWithName:@"fontello"size:23], 
            NSForegroundColorAttributeName:[[UIColor alloc] initWithWhite:0.f alpha:1.f]} 
         forState:UIControlStateNormal]; 
    [menu setTitleTextAttributes:@{NSFontAttributeName:[UIFont fontWithName:@"fontello"size:23], 
            NSForegroundColorAttributeName:[[UIColor alloc] initWithWhite:0.f alpha:0.5f]} 
         forState:UIControlStateHighlighted];