UISearchBar實(shí)用技巧

UISearchBar作為搜索條有的時候我們需要做一些自定的內(nèi)容,讓它看著有點(diǎn)與眾不同,先來看一張效果圖:

SearBar.gif

第一個搜索框自定義設(shè)置的比較多,顏色設(shè)置的有點(diǎn)夸張,僅供參考,設(shè)置過程如下:
1.設(shè)置默認(rèn)的搜索文字

   self.searchBar.placeholder = @"FlyElephant";

2.設(shè)置取消按鈕的文字及顏色

   self.searchBar.cancelTitle = @"中山郎";
   self.searchBar.tintColor   = [UIColor greenColor];

3.設(shè)置搜索框邊框及光標(biāo)顏色:

   UITextField *searchField = [self.searchBar valueForKey:@"searchField"];
   if (searchField) {
       [searchField setBackgroundColor:[UIColor whiteColor]];
       searchField.layer.cornerRadius  = 13.0f;
       searchField.layer.borderColor   = [UIColor redColor].CGColor;
       searchField.layer.borderWidth   = 1;
       searchField.layer.masksToBounds = YES;
       //光標(biāo)顏色
       [searchField setTintColor:[UIColor blueColor]];
   }

4.取消默認(rèn)的灰色背景區(qū)域

   self.searchBar.backgroundImage = [[UIImage alloc] init];

5.隱藏取消按鈕:

   self.nextSearchBar.showsCancelButton=NO;

6.設(shè)置輸入文本的大小及顏色:

   self.searchBar.textColor=[UIColor redColor];
   self.searchBar.textFont=[UIFont systemFontOfSize:14];

7.設(shè)置迷你搜索框:

   self.nextSearchBar.searchBarStyle=UISearchBarStyleMinimal;

第一步和第六步中的屬性是通過分類實(shí)現(xiàn):

@implementation UISearchBar (FESearchBar)

-(NSString *)cancelTitle {
    return [objc_getAssociatedObject(self, cancelTitleKey) string];
}

-(void)setCancelTitle:(NSString *)cancelTitle {
   if (IS_IOS9) {
       [[UIBarButtonItem appearanceWhenContainedInInstancesOfClasses:@[[UISearchBar class]]] setTitle:cancelTitle];
   }else {
       [[UIBarButtonItem appearanceWhenContainedIn:[UISearchBar class], nil] setTitle:cancelTitle];
   }
    objc_setAssociatedObject(self,cancelTitleKey,cancelTitle, OBJC_ASSOCIATION_RETAIN_NONATOMIC);
}

-(UIFont *)textFont {
   return objc_getAssociatedObject(self, textFontKey);
}

-(void)setTextFont:(UIFont *)textFont {
   if (IS_IOS9) {
       [UITextField appearanceWhenContainedInInstancesOfClasses:@[[UISearchBar class]]].font = textFont;
   }else {
       [[UITextField appearanceWhenContainedIn:[UISearchBar class], nil] setFont:textFont];
   }
   objc_setAssociatedObject(self,textFontKey,textFont, OBJC_ASSOCIATION_RETAIN_NONATOMIC);
}

-(UIColor *)textColor{
   return objc_getAssociatedObject(self, textColorKey);
}

-(void)setTextColor:(UIColor *)textColor {
   if (IS_IOS9) {
       [UITextField appearanceWhenContainedInInstancesOfClasses:@[[UISearchBar class]]].textColor = textColor;
   }else {
       [[UITextField appearanceWhenContainedIn:[UISearchBar class], nil] setTextColor:textColor];
   }
   objc_setAssociatedObject(self,textColorKey,textColor, OBJC_ASSOCIATION_RETAIN_NONATOMIC);
}

@end

如果有問題歡迎探討,代碼地址:FlyElephant的GitHub

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,045評論 25 709
  • ¥開啟¥ 【iAPP實(shí)現(xiàn)進(jìn)入界面執(zhí)行逐一顯】 〖2017-08-25 15:22:14〗 《//首先開一個線程,因...
    小菜c閱讀 7,334評論 0 17
  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫、插件、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 15,330評論 4 61
  • PDCA:是最早由美國質(zhì)量統(tǒng)計控制之父休哈特提出的PDS(Plan Do See)演化而來,由美國質(zhì)量管理專家戴明...
    萬能的老J閱讀 532評論 2 8
  • “西藏行的驢友馬哥要來廣州了,一起去聚聚吧?”朋友榮問。 “才子馬哥,一定要見?!蔽艺f。 幾個小時后,羊城四大美女...
    一縷清風(fēng)襲來閱讀 239評論 0 3

友情鏈接更多精彩內(nèi)容