day14---UITableViewCell

1.如何自定義UITableViewCell
2.QQ折疊效果
3.UISearchController 搜索框

一.如何自定義UITableViewCell
步驟:
1)自己創(chuàng)建一個類MyCell耳舅,繼承自UITableViewCell仙蛉;
2)在第三問cellForRow這個方法中浪谴,把之前的凡是用到UITableViewCell的地方,全部修改成MyCell纷捞;

【Demo】-【1-CustomCell】

從本地的plist文件拿數(shù)據(jù)方法:
NSString *filePath = [[NSBundle mainBundle] pathForResource:@"Limit" ofType:@"plist"];
NSArray *array = [NSArray arrayWithContentsOfFile:filePath];

成員變量中聲明的bool值似谁,默認(rèn)為NO;

二 QQ折疊
思路:
1)給每個分區(qū)自定義一個頭部視圖【能被點(diǎn)擊】
//點(diǎn)擊頭部視圖匣摘,響應(yīng)方法
//自定義頭部視圖怒医,頭部視圖繼承自UiView

//返回自定義的分區(qū)頭部視圖
-(UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
{
return self.sectionHeaderArray[section];

}

//返回分區(qū)頭部視圖的高度
-(CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section
{
return 40;
}

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
//讓狀態(tài)在展開和收縮之間切換
self.isAppear = !self.isAppear;

[UIView animateWithDuration:0.2 animations:^{
    if (self.isAppear == YES) {
        //展開,箭頭旋轉(zhuǎn)90度
        self.imgView.transform = CGAffineTransformRotate(self.imgView.transform, M_PI_2);
        
    }else
    {
        //收縮脆丁,箭頭逆時針旋轉(zhuǎn)90度
        self.imgView.transform = CGAffineTransformRotate(self.imgView.transform, -M_PI_2);
    }
}];

//刷新tableView
self.block();

}

2)根據(jù)點(diǎn)擊頭部視圖來控制是夠要展開還是收縮世舰,如果是收縮,那么讓該分區(qū)返回的行數(shù)為0槽卫;如果是展開狀態(tài)跟压,那么讓該分區(qū)返回的行數(shù)為具體的好友個數(shù); 【** 主要在第二問中實(shí)現(xiàn) **】

3)給頭部視圖加一個屬性BOOL值歼培,用于記錄當(dāng)點(diǎn)擊頭部視圖之后震蒋,是要收縮還是展開;每次點(diǎn)擊之后丐怯,修改BOOL的值喷好,并刷新tableView;

【Demo】-【2-QQ_ZheDie】
  • (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {

    //折疊效果的核心思想
    SectionHeaderView *view = self.sectionHeaderArray[section];
    CategoryModel *model = self.dataArray[section];

return view.isAppear?model.friends.count:0;

}

三 搜索
搜索出結(jié)果后读跷,傳入一個需要展示的數(shù)組(攜帶數(shù)據(jù))梗搅,在一個獨(dú)立的tableView中展示出來的;

-(void)creatSearchBar
{
//創(chuàng)建顯示搜索結(jié)果的控制器對象
self.sResultVC = [[SearchResultTableViewController alloc] init];

//1.創(chuàng)建一個UISearchControler對象,并制定顯示搜索結(jié)果的tableView
self.searchController = [[UISearchController alloc] initWithSearchResultsController:self.sResultVC];

//2.將搜索控制器跟當(dāng)前的self進(jìn)行關(guān)聯(lián)
self.searchController.searchResultsUpdater = self;

//3.searchBar自適應(yīng)位置
[self.searchController.searchBar sizeToFit];

//4.把searchBar顯示self.tableView在頭部視圖
self.tableView.tableHeaderView = self.searchController.searchBar;


//5.表示該視圖控制器的視圖是否被覆蓋
self.definesPresentationContext = YES;

}

pragma mark -UISearchResultsUpdating

//當(dāng)用戶輸入文本的時候開始調(diào)用

  • (void)updateSearchResultsForSearchController:(UISearchController *)searchController
    {
    NSLog(@"%@",searchController.searchBar.text);
    //把搜索出來的符合條件的結(jié)果存在一個數(shù)組中
    NSMutableArray *resultArray = [NSMutableArray array];
    for (CategoryModel *model in self.dataArray) {
    for (FriendsModel *fModel in model.friends) {

          //字符串的查找
          NSRange range = [fModel.name rangeOfString:searchController.searchBar.text];
          if (range.length>0) {
              //找到了符合條件的fModel无切,然后加入數(shù)組中
              [resultArray addObject:fModel];
          }
          
      }
    

    }

    //將搜索之后的結(jié)果交給顯示搜索結(jié)果的控制器顯示出來
    self.sResultVC.resultArray = resultArray;
    [self.sResultVC.tableView reloadData];

}

根據(jù)字符串長度重新計算frame

  //第一個參數(shù):最大的寬和最大的高度荡短,達(dá)不到這個高度會自動縮小  是進(jìn)行自適應(yīng)的尺寸 
    
  //第二個參數(shù)   option 布局格式 NSStringDrawingUsesLineFragmentOrigin
       option:文本繪制時的附加選項(xiàng)

有四種類型:
1.NSStringDrawingTruncatesLastVisibleLine :
2.NSStringDrawingUsesLineFragmentOrigin :

  1. NSStringDrawingUsesFontLeading :
  2. NSStringDrawingUsesDeviceMetrics :

通常使用NSStringDrawingUsesLineFragmentOrigin,如果options參數(shù)為NSStringDrawingUsesLineFragmentOrigin哆键,那么整個文本將以每行組成的矩形為單位計算整個文本的尺寸掘托。
如果為NSStringDrawingTruncatesLastVisibleLine或者NSStringDrawingUsesDeviceMetric,那么計算文本尺寸時將以每個字或字形為單位來計算
如果為NSStringDrawingUsesFontLeading則以字體間的行距(leading籍嘹,行距:從一行文字的底部到另一行文字底部的間距闪盔。)來計算
//第三個參數(shù):將文本UIFront存入字典傳到這里 字符串的屬性
字典@{NSFontAttributeName:[UIFont systemFontOfSize:17]};

  //第四個參數(shù):context:context上下文。包括一些信息辱士,例如如何調(diào)整字間距以及縮放泪掀。最終,該對象包含的信息將用于文本繪制颂碘。該參數(shù)可為 nil 
        
    CGRect rect =    [str1 boundingRectWithSize:CGSizeMake(320, 10000) options:NSStringDrawingUsesLineFragmentOrigin attributes:@{NSFontAttributeName: [UIFont systemFontOfSize:17]} context:nil];
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末异赫,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子头岔,更是在濱河造成了極大的恐慌塔拳,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,383評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件峡竣,死亡現(xiàn)場離奇詭異靠抑,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)澎胡,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,522評論 3 385
  • 文/潘曉璐 我一進(jìn)店門孕荠,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人攻谁,你說我怎么就攤上這事⊥溆瑁” “怎么了戚宦?”我有些...
    開封第一講書人閱讀 157,852評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長锈嫩。 經(jīng)常有香客問我受楼,道長,這世上最難降的妖魔是什么呼寸? 我笑而不...
    開封第一講書人閱讀 56,621評論 1 284
  • 正文 為了忘掉前任艳汽,我火速辦了婚禮,結(jié)果婚禮上对雪,老公的妹妹穿的比我還像新娘河狐。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,741評論 6 386
  • 文/花漫 我一把揭開白布馋艺。 她就那樣靜靜地躺著栅干,像睡著了一般。 火紅的嫁衣襯著肌膚如雪捐祠。 梳的紋絲不亂的頭發(fā)上碱鳞,一...
    開封第一講書人閱讀 49,929評論 1 290
  • 那天,我揣著相機(jī)與錄音踱蛀,去河邊找鬼窿给。 笑死,一個胖子當(dāng)著我的面吹牛率拒,可吹牛的內(nèi)容都是我干的填大。 我是一名探鬼主播,決...
    沈念sama閱讀 39,076評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼俏橘,長吁一口氣:“原來是場噩夢啊……” “哼允华!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起寥掐,我...
    開封第一講書人閱讀 37,803評論 0 268
  • 序言:老撾萬榮一對情侶失蹤靴寂,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后召耘,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體百炬,經(jīng)...
    沈念sama閱讀 44,265評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,582評論 2 327
  • 正文 我和宋清朗相戀三年污它,在試婚紗的時候發(fā)現(xiàn)自己被綠了剖踊。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,716評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡衫贬,死狀恐怖德澈,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情固惯,我是刑警寧澤梆造,帶...
    沈念sama閱讀 34,395評論 4 333
  • 正文 年R本政府宣布,位于F島的核電站葬毫,受9級特大地震影響镇辉,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜贴捡,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,039評論 3 316
  • 文/蒙蒙 一赵哲、第九天 我趴在偏房一處隱蔽的房頂上張望笆环。 院中可真熱鬧,春花似錦、人聲如沸丑勤。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,798評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至色迂,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間手销,已是汗流浹背歇僧。 一陣腳步聲響...
    開封第一講書人閱讀 32,027評論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留锋拖,地道東北人诈悍。 一個月前我還...
    沈念sama閱讀 46,488評論 2 361
  • 正文 我出身青樓,卻偏偏與公主長得像兽埃,于是被迫代替她去往敵國和親侥钳。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,612評論 2 350

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

  • 概述在iOS開發(fā)中UITableView可以說是使用最廣泛的控件柄错,我們平時使用的軟件中到處都可以看到它的影子舷夺,類似...
    liudhkk閱讀 9,012評論 3 38
  • 廢話不多說,直接上干貨 ---------------------------------------------...
    小小趙紙農(nóng)閱讀 3,343評論 0 15
  • UITableViewCell 父類是UIView UITableView的每一行都是一個UITableViewC...
    翻這個墻閱讀 6,578評論 0 1
  • 這是一部以智利解放運(yùn)動為背景的書售貌,作者拉波尼奧在書中以第一人稱的角度敘述著在民族解放中的人和事给猾,作者敘述的手法可以...
    懷心逝水閱讀 746評論 0 0
  • 最新日志查看ls -lrt 監(jiān)控系統(tǒng)命令topvmstat * ( *輸入數(shù)字 前邊是多少秒一次 后邊是次數(shù)) O...
    寧靜消失何如閱讀 56評論 0 0