iOS 9月份問(wèn)題總結(jié):Xcode 9導(dǎo)航欄UISearchBar /Tableview預(yù)加載

9月份問(wèn)題總結(jié):

主要內(nèi)容:
(1) 適配iOS11,Xcode 9中出現(xiàn)問(wèn)題歸納.
(2) Tableview預(yù)加載問(wèn)題測(cè)試

一.適配iOS 11; UISearchBar / UISearchBar導(dǎo)航欄顯示問(wèn)題
(1)iOS 11導(dǎo)航欄顯示效果改變

標(biāo)注1: UISearchBar背景高度改為56
標(biāo)注2: UISearchBar內(nèi)部TextField高度改為36

背景高度.png
內(nèi)部TextFileld高度.png
嘗試解決方法:

(1) http://www.reibang.com/p/39a5aee18778 (更改或自定義)
(2) 快速方法:

[[UISearchBar appearance] setSearchFieldBackgroundImage:[self searchFieldBackgroundImage] forState:UIControlStateNormal];
UITextField *txfSearchField = [self.searchBar valueForKey:@"_searchField"];
[txfSearchField setDefaultTextAttributes:@{NSFontAttributeName:[UIFont systemFontOfSize:13.5]}];

self.searchBar.searchTextPositionAdjustment = UIOffsetMake(7, 0)

//調(diào)用方法
- (UIImage*)searchFieldBackgroundImage {
    UIColor*color = [UIColor whiteColor];
    CGFloat cornerRadius = 5;
    CGRect rect =CGRectMake(0,0,28,28);

    UIBezierPath*roundedRect = [UIBezierPath bezierPathWithRoundedRect:rect cornerRadius:cornerRadius];
roundedRect.lineWidth=0;

    UIGraphicsBeginImageContextWithOptions(rect.size,NO,0.0f);
    [color setFill];
    [roundedRect fill];
    [roundedRect stroke];
    [roundedRect addClip];

    UIImage *image =UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    return image;
}
快速方法顯示效果:

備注::不是放在導(dǎo)航欄上UISearchBar,調(diào)用相同方法即可.(背景高度改變-可添加約束/放在父view上等等)

更改后顯示效果對(duì)比.png
二.適配iOS 11; Safe Area Layout Guide Before IOS 9.0
(1)方法:

http://blog.csdn.net/chmod_r_755/article/details/78052380

三.Tableview滑動(dòng)預(yù)加載測(cè)試:

(1)方法:

- (void)scrollViewDidScroll:(UIScrollView *)aScrollView {
    CGPoint offset = aScrollView.contentOffset;
    CGRect bounds = aScrollView.bounds;
    CGSize size = aScrollView.contentSize;
    UIEdgeInsets inset = aScrollView.contentInset;//邊緣距離
    float y = offset.y + bounds.size.height - inset.bottom;
    float h = size.height;

    NSLog(@"offset: %f", offset.y);
    NSLog(@"content.height: %f", size.height);
    NSLog(@"bounds.height: %f", bounds.size.height);//603,界面高度6s-667-64,
    NSLog(@"inset.top: %f", inset.top);
    NSLog(@"inset.bottom: %f", inset.bottom);
    NSLog(@"pos: %f of %f", y, h);

   float reload_distance = 80;
   if(y > h - reload_distance) {
      NSLog(@"load more rows");
      self.pageIndex ++;
      [self getServerData];
   }
}
Demo地址:https://github.com/FTC-Chen/TableViewPreload
四.使用UISearchBar實(shí)現(xiàn)連續(xù)搜索界面,支持/熱搜/歷史搜索記錄.去重/清楚歷史搜索/篩選過(guò)濾/;整體效果類(lèi)似京東首頁(yè)搜索效果

(1)主要代碼:

1. 保存搜索記錄:
//保存搜索記錄
-(void)SearchText :(NSString *)seaTxt{
    NSUserDefaults *userDefaultes = [NSUserDefaults standardUserDefaults];
    //讀取數(shù)組NSArray類(lèi)型的數(shù)據(jù)
    NSArray *myArray = [[NSArray alloc] initWithArray:[userDefaultes arrayForKey:@"searchHistory"]];

    // NSArray --> NSMutableArray
    NSMutableArray *searTXT = [NSMutableArray array];
    searTXT = [myArray mutableCopy];

    BOOL isEqualTo1,isEqualTo2;
    isEqualTo1 = NO;
    isEqualTo2 = NO;

    if (searTXT.count > 0) {
        isEqualTo2 = YES;
        //判斷搜索內(nèi)容是否存在,存在的話(huà)放到數(shù)組第一位,不存在的話(huà)添加寥裂。
        for (NSString * str in myArray) {
            if ([seaTxt isEqualToString:str]) {
                //獲取指定對(duì)象的索引
                NSUInteger index = [myArray indexOfObject:seaTxt];
                [searTXT removeObjectAtIndex:index];
                [searTXT insertObject:seaTxt atIndex:0];
                isEqualTo1 = YES;
                break;
            }
        }
    }
    if (!isEqualTo1 || !isEqualTo2) {
        [searTXT insertObject:seaTxt atIndex:0];
        //[searTXT addObject:seaTxt];
    }
    //大于15去掉最后一個(gè),保存15條記錄
    if(searTXT.count > 15){
        [searTXT removeObjectAtIndex:searTXT.count-1];
    }
    //將上述數(shù)據(jù)全部存儲(chǔ)到NSUserDefaults中
    NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
    [userDefaults setObject:searTXT forKey:@"searchHistory"];
}
2. 過(guò)濾搜索數(shù)據(jù):
 NSString *searchString = [self.searBar text];
 NSPredicate *preicate = [NSPredicate predicateWithFormat:@"SELF CONTAINS[c] %@", searchString];
 if (self.filterResultArray!= nil) {
        [self.filterResultArray removeAllObjects];
  }
 //過(guò)濾數(shù)據(jù)
 self.filterResultArray = [NSMutableArray arrayWithArray:[self.filterArray filteredArrayUsingPredicate:preicate]];
3. 實(shí)現(xiàn)效果:
UISearchBar搜索.gif

Demo地址:https://github.com/FTC-Chen/SearchWithHotHistory

五.參考資料
1.http://blog.csdn.net/shengdavolleyball/article/details/50751970
有任何問(wèn)題請(qǐng)私信或者留言.

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市案疲,隨后出現(xiàn)的幾起案子封恰,更是在濱河造成了極大的恐慌,老刑警劉巖褐啡,帶你破解...
    沈念sama閱讀 216,651評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件诺舔,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡备畦,警方通過(guò)查閱死者的電腦和手機(jī)低飒,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,468評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)懂盐,“玉大人褥赊,你說(shuō)我怎么就攤上這事±蚰眨” “怎么了拌喉?”我有些...
    開(kāi)封第一講書(shū)人閱讀 162,931評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)类垫。 經(jīng)常有香客問(wèn)我司光,道長(zhǎng),這世上最難降的妖魔是什么悉患? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,218評(píng)論 1 292
  • 正文 為了忘掉前任残家,我火速辦了婚禮,結(jié)果婚禮上售躁,老公的妹妹穿的比我還像新娘坞淮。我一直安慰自己,他們只是感情好陪捷,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,234評(píng)論 6 388
  • 文/花漫 我一把揭開(kāi)白布回窘。 她就那樣靜靜地躺著,像睡著了一般市袖。 火紅的嫁衣襯著肌膚如雪啡直。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,198評(píng)論 1 299
  • 那天苍碟,我揣著相機(jī)與錄音酒觅,去河邊找鬼。 笑死微峰,一個(gè)胖子當(dāng)著我的面吹牛舷丹,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播蜓肆,決...
    沈念sama閱讀 40,084評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼颜凯,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼谋币!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起症概,我...
    開(kāi)封第一講書(shū)人閱讀 38,926評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤蕾额,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后彼城,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體凡简,經(jīng)...
    沈念sama閱讀 45,341評(píng)論 1 311
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,563評(píng)論 2 333
  • 正文 我和宋清朗相戀三年精肃,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片帜乞。...
    茶點(diǎn)故事閱讀 39,731評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡司抱,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出黎烈,到底是詐尸還是另有隱情习柠,我是刑警寧澤,帶...
    沈念sama閱讀 35,430評(píng)論 5 343
  • 正文 年R本政府宣布照棋,位于F島的核電站资溃,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏烈炭。R本人自食惡果不足惜溶锭,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,036評(píng)論 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望符隙。 院中可真熱鬧趴捅,春花似錦、人聲如沸霹疫。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,676評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)丽蝎。三九已至猎拨,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間屠阻,已是汗流浹背红省。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,829評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留栏笆,地道東北人类腮。 一個(gè)月前我還...
    沈念sama閱讀 47,743評(píng)論 2 368
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像蛉加,于是被迫代替她去往敵國(guó)和親蚜枢。 傳聞我的和親對(duì)象是個(gè)殘疾皇子缸逃,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,629評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容

  • WebSocket-Swift Starscream的使用 WebSocket 是 HTML5 一種新的協(xié)議。它實(shí)...
    香橙柚子閱讀 23,848評(píng)論 8 183
  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫(kù)厂抽、插件需频、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 12,094評(píng)論 4 62
  • 私が考える「前向き思考」は、問(wèn)題発生した時(shí)に考えますね筷凤、色々の問(wèn)題ケースが有りますが昭殉。 思考の順位 1、 現(xiàn)象と問(wèn)...
    炬焱閱讀 464評(píng)論 0 0
  • 四十五,鱉蹬鼓 卢厂。 家鄉(xiāng)人都忌諱這個(gè)年齡乾蓬,四十四一過(guò)都直接說(shuō)四十六。昨天慎恒,小心翼翼的過(guò)了四十五任内。今天,在親朋好友的...
    黃黃苗閱讀 267評(píng)論 0 2
  • 匆匆忙忙北宸老師的課就過(guò)去啦越除!每周兩節(jié)課,我們相約在微信群(柿集|青柿課堂)來(lái)聽(tīng)老師的語(yǔ)音授課外盯,似乎在短短兩次之后...
    過(guò)后123閱讀 226評(píng)論 0 0