UISearchBar--改變內部輸入框的背景顏色


思路是獲取UISearchBar的子視圖,判斷他是否是輸入框(注意不要先入為主地認為是UITextField),最后修改背景色。至於UISearchBar的子視圖結構,在不同的iOS版本可能會不一樣,可通過遞歸地調用description方法獲知,具體可見鏈接http://blog.csdn.net/forestml2008/article/details/32914915

下面附上代碼:

 1 - (void)setSearchTextFieldBackgroundColor:(UIColor *)backgroundColor
 2 {
 3     UIView *searchTextField = nil;
 4     if (IsiOS7OrLater) {
 5         // 經測試, 需要設置barTintColor后, 才能拿到UISearchBarTextField對象
 6         self.barTintColor = [UIColor whiteColor];
 7         searchTextField = [[[self.subviews firstObject] subviews] lastObject];
 8     } else { // iOS6以下版本searchBar內部子視圖的結構不一樣
 9         for (UIView *subView in self.subviews) {
10             if ([subView isKindOfClass:NSClassFromString(@"UISearchBarTextField")]) {
11                 searchTextField = subView;
12             }
13         }
14     }
15 
16     searchTextField.backgroundColor = backgroundColor;
17 }


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM