0

と呼ばれる でUISearchBar作成された がInterfaceBuilderあります。コードで幅と高さを変更したいのですが、できません。これが私のコードです:IBOutletuserSearchBar

    for (UIView * const subview in userSearchBar.subviews) {

    if ([subview isKindOfClass: NSClassFromString(@"UISearchBarBackground")]) {
        [subview removeFromSuperview];
    }

    if ([subview isKindOfClass: [UITextField class]]) {

        UITextField * const textField = (UITextField *)subview;

        textField.textColor = [UIColor redColor];
        textField.text = @"Enter text";
        textField.frame = CGRectMake(0, 0, 250, 50);
    }
}

他のすべての変更 (テキスト、色、バーの削除) は完全に機能しますが、サイズの変更は機能しません。

4

1 に答える 1

6

私はまさにこれに直面しましたが、最善の方法は、独自の検索バーを最初から作成してサブクラス化することUIViewでした。これにより、このようにハックするのではなく、カスタマイズしたいすべてのプロパティ(背景、デザインやブランドを検討する際の色など)に合法的にアクセスできます。これは将来を保証するものであり、それほど難しくはなく、時間もかかりません。それは楽しい運動であり、あなたが望むものを正確に提供します。

于 2012-11-20T13:54:00.807 に答える