iOS开发中的UISearchBar背景替换,自定义UISearchBar背景

By | 2012 年 11 月 19 日

UISearchBar的背景在5.0之前并没有提供SDK来替换。

但是实际应用中又常常需要替换掉默认的背景,于是要么自己重写一个searchbar要么寻求别的方法。好在于在SDK5.0之后,提供了一个简单的方法来做:

@property(nonatomic,retain) UIImage *backgroundImage NS_AVAILABLE_IOS(5_0) UI_APPEARANCE_SELECTOR;

在5.0之前怎么办呢?可以用下面的办法(未经测试,目测靠谱):

    for (UIView *sub in self.searchBar.subviews) {
        if ([sub isKindOfClass:NSClassFromString(@"UISearchBarBackground")]) {
            //this is the bkg view, hide it and insert another view
            UIImageView *newbkg = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"newbkg"]];
            newbkg.frame = sub.frame;
            [self.searchBar insertSubview:newbkg belowSubview:sub];
            [newbkg release];
            sub.hidden = YES;
            break;
        }
    }

发表评论

电子邮件地址不会被公开。 必填项已用*标注