? ? ? ? ? ? ? ? ? ??
最近項(xiàng)目中使用UISearchBar,在處理過程中遇到以下問題,查找資料解決后,分享給大家,方便以后遇到同樣的問題得以很好的解決
1.項(xiàng)目中設(shè)計(jì)日夜間,所以需要給UISearchBar設(shè)置日夜間顏色,背景顏色都一樣可以修改,主要是字體顏色,網(wǎng)上查到@"_searchField"該屬性
? UITextField*searchField = [_searchbarvalueForKey:@"_searchField"];
? searchField.dk_textColorPicker=DKColorPickerWithRGB(0x000000,0x666666);
通過改屬性,獲得UITextField,然后改變searchField.text的顏色值
我遇到的問題是,我把UITextField*searchField = [_searchbarvalueForKey:@"_searchField"];寫在[headview addSubview:_searchbar];后面,導(dǎo)致searchField=nil,所以如果你也需要UITextField屬性,記得一定在UISearchBar添加在視圖后
2.UISearchBar的取消按鈕
這個問題比較詭異,但是網(wǎng)上有人給出了答案,由于我查的時候也是很久才找到,所以才想分享給大家
在如圖1的情況下,UISearchBar“取消”按鈕非高亮狀態(tài),點(diǎn)擊取消后進(jìn)入編輯狀態(tài)如圖2,斷點(diǎn)調(diào)試發(fā)現(xiàn)進(jìn)入- (void)searchBarTextDidBeginEditing:(UISearchBar *)searchBar{ }方法,截圖如下:
給UISearchBar添加背景色,會發(fā)現(xiàn)取消按鈕也在UISearchBar上面,所以點(diǎn)擊它會觸發(fā)開始編輯響應(yīng)
,進(jìn)入編輯狀態(tài)后,取消按鈕高亮,再次點(diǎn)擊取消進(jìn)入- (void)searchBarCancelButtonClicked:(UISearchBar *)searchBar{ }方法 ?
網(wǎng)上給出的解決方案:
1.是由于searchBar上有個手勢,只要點(diǎn)擊到searchbar就會觸發(fā)手勢使searchbar進(jìn)入編輯模式,包括點(diǎn)擊searchbar的邊框,而取消按鈕的大小距離searchbar的邊框有八個像素的距離,因此手指點(diǎn)擊的時候很容易會點(diǎn)擊到searchbar邊框上的像素,從而觸發(fā)編輯事件,可以通過以下代碼,去除該手勢事件,就行了
for?(UIGestureRecognizer?*tap?in?_searchBar.gestureRecognizers)?{
[_searchBar?removeGestureRecognizer:tap];
}
我用的就是這個方法,問題得到了解決
2.這是因?yàn)榇藭r取消按鈕的enabled屬性被設(shè)置為NO了,如果想保持可以點(diǎn)擊,需要在搜索框失去焦點(diǎn)的地方設(shè)置一下,例如在search按鈕的代理方法里面這樣寫
-(void)searchBarSearchButtonClicked:(UISearchBar?*)searchBar?{
[searchBar?resignFirstResponder];?//searchBar失去焦點(diǎn)
UIButton?*cancelBtn?=?[searchBar?valueForKey:@"cancelButton"];?//首先取出cancelBtn
cancelBtn.enabled?=?YES;?//把enabled設(shè)置為yes
}
博客原文:http://blog.csdn.net/Yo_Yo_Yang/article/details/51395381(這貌似是解決其它問題的,我沒有嘗試)
########-----------------——#################
本次還遇到了1.UITableView的cell長按拖拽換位置,指定cell不能拖拽也不能被換? ? 2.自定義UIPageControl任意一個圓圈用指定的圖代替,切不會隨著UIScrollView移動切換這個指定的圖片,類似天氣定位中的UIPageControl,如圖:
希望對大家有幫助,至于后面的兩個問題,后續(xù)分享具體代碼,希望大家喜歡我的分享??