3

カスタムのフォントとサイズの UITextFields があります。新しいiOS/Xcodeですべての変更を修正するためにXcode 5に変更するまで、すべてがうまくいきました。UITextFields をチェックすると、プレースホルダーと編集中に適切なフォントが表示されますが、編集を停止するとフォント サイズが大きくなります。では、なぜ Xcode 5 で動作しないのでしょうか?

スクリーンショット:リンク

フォントを設定するコードは変更されていません:

[_eventName setFont:[UIFont fontWithName:APP_FONT_FUTURASTD_LIGHT size:16]];
4

4 に答える 4

2

UILabels の外観プロキシに変更を加えましたか? 編集が完了した後、UITextField のテキストが UILabel としてレンダリングされているように見える同様の問題があります。UILabel で外観プロキシ設定をオーバーライドすると、この問題が修正されました。

于 2013-11-14T18:51:06.007 に答える
0

私はこの問題を抱えていましたが、chrisoneiota で説明されているように、問題は UITextField が状況によっては UILabel を使用することです。UITextField をオーバーライドすることでも解決しましたが、実装する代わりに次のようdrawInRect:にします。

- (void)addSubview:(UIView *)view {
    if ([view isKindOfClass:[UILabel class]]) {
        UILabel *label = (UILabel *)view;
        label.font = self.font;
    }
    [super addSubview:view];
}

これはうまくいくようです。

于 2016-03-15T10:36:45.347 に答える
0

代わりに、NSDictionary を取る sizeWithAttributes: を使用する必要があります。次のように、キー UITextAttributeFont とフォント オブジェクトのペアを渡します。

[_eventName.text sizeWithAttributes:@{NSFontAttributeName:[UIFont fontWithName:APP_FONT_FUTURASTD_LIGHT size:16]}]
于 2013-09-27T08:17:49.317 に答える