在iOS 7中定制UISearchBar

在iOS 7中定制UISearchBar,ios,objective-c,ios7,uisearchbar,Ios,Objective C,Ios7,Uisearchbar,我有一个ui搜索栏,我想定制它的外观。在更新到iOS 7之前,中的建议起了作用。但现在我不知道该怎么做。我主要想定制取消按钮。有人知道怎么做吗?您需要递归搜索按钮。这应该是一种故障安全的方法: - (void)viewDidLoad { [super viewDidLoad]; [self convertButtonTitle:@"Cancel" toTitle:@"Annuller" inView:self.searchBar]; } - (void)convertButt

我有一个
ui搜索栏
,我想定制它的外观。在更新到iOS 7之前,中的建议起了作用。但现在我不知道该怎么做。我主要想定制取消按钮。有人知道怎么做吗?

您需要递归搜索按钮。这应该是一种故障安全的方法:

- (void)viewDidLoad
{
    [super viewDidLoad];

    [self convertButtonTitle:@"Cancel" toTitle:@"Annuller" inView:self.searchBar];
}

- (void)convertButtonTitle:(NSString *)from toTitle:(NSString *)to inView:(UIView *)view
{
    if ([view isKindOfClass:[UIButton class]])
    {
        UIButton *button = (UIButton *)view;
        if ([[button titleForState:UIControlStateNormal] isEqualToString:from])
        {
            [button setTitle:to forState:UIControlStateNormal];
        }
    }

    for (UIView *subview in view.subviews)
    {
        [self convertButtonTitle:from toTitle:to inView:subview];
    }
}

我只在iOS 7上测试过这个功能,但它也可以在iOS 6上测试。

这里回答的问题是:在iOS 7中不起作用。回答这个问题的人提到他只在iOS 6上试过。看看我对这个问题的回答。试过了,在iOS 7上运行正常:)递归方法成功了!非常感谢。也许你应该把它贴在这里,这样我就可以接受答案了。:)谢谢,而且,我似乎无法更改取消按钮的框架。知道为什么吗?不,我还没机会试一下。也许可以尝试在
viewdilayoutsubviews
中更改它?嗯,当然可以。我要试一试。谢谢。:)然后可能需要对UISearchBar进行子类化。我也要试试。