5

アプリケーションで UISearchBar の外観を変更する次のコードがあり、下の画像でも確認できます。

for(int i = 0; i < [[searchBar subviews] count]; i++){
    UIView *subView = [[searchBar subviews] objectAtIndex:i];
    if([[NSString stringWithFormat:@"%@", [subView class]] isEqualToString:@"UINavigationButton"]){
        UIButton *cancelButton = (UIButton *)subView;

        CGRect buttonFrame = cancelButton.frame;
        buttonFrame.size.height = 52;
        [cancelButton setFrame:buttonFrame];

        [cancelButton setTitle:@"Cancel" forState:UIControlStateNormal];
        [cancelButton setBackgroundImage:[UIImage imageNamed:@"cancel.png"] forState:UIControlStateNormal];
        [cancelButton setBackgroundImage:[UIImage imageNamed:@"cancel_pressed.png"] forState:UIControlStateHighlighted];
    }
}

ご覧のとおり、UISearchBar に含まれるボタンの高さを変更しようとしていますが、うまくいきません。テキストを変更でき、フレームの高さだけでなく背景画像が変更されるため、ボタンへの参照を取得します。ボタンの高さを検索ボックスと同じ 52px にしたいだけです。

ここに画像の説明を入力

編集:

本当にハックな解決策を見つけましたが、キャンセル ボタンのサブビューとして UIButton を追加するのはあまりエレガントではありません。それは仕事をしますが、私が言うように、それはあまり良くありません。

4

2 に答える 2