索引選中方法中設(shè)置tableView的偏移量無(wú)效果(sectionForSectionIndexTitle)。續(xù):UITableViewIndex相關(guān)樣式修改动分。

最近新碰到了一個(gè)小需求毅糟,tableView點(diǎn)擊索引條的某一個(gè)索引時(shí)將tableView滑動(dòng)到指定的section。
?之前也做過(guò)類似的實(shí)現(xiàn)澜公,但是頁(yè)面都是比較簡(jiǎn)單姆另,直接使用tableView 的scroll to section 方法即可。
?但是這次的做了一個(gè)自定義的header懸停坟乾,需要在滑動(dòng)到指定section的時(shí)候迹辐,向下偏移一段距離,具體的偏移量就得自己計(jì)算了甚侣。
?然后神奇的發(fā)現(xiàn)在-(NSInteger)tableView:(UITableView *)tableView sectionForSectionIndexTitle:(NSString *)title atIndex:(NSInteger)index方法中設(shè)置tableView的偏移量竟然不起作用明吩,會(huì)被系統(tǒng)強(qiáng)制做偏移量的修正。
?如下圖:

滑動(dòng)無(wú)法控制.gif

log了tableView的偏移量之后發(fā)現(xiàn)殷费,手動(dòng)設(shè)置的偏移量確實(shí)生效了印荔,但是緊接著系統(tǒng)會(huì)重新設(shè)置一下偏移量低葫。
?導(dǎo)致在
-(NSInteger)tableView:(UITableView *)tableView sectionForSectionIndexTitle:(NSString *)title atIndex:(NSInteger)index方法中自定義偏移量無(wú)法達(dá)到預(yù)期效果,第一個(gè)分區(qū)會(huì)被自定義的header蓋住一部分躏鱼。

搜索后發(fā)現(xiàn)從iOS9之后在這個(gè)方法里面做自定義的滑動(dòng)總是會(huì)被系統(tǒng)做偏移量的修正氮采。

具體原因在于-(NSInteger)tableView:(UITableView *)tableView sectionForSectionIndexTitle:(NSString *)title atIndex:(NSInteger)index方法的返回值上。

?- (NSInteger)tableView:(UITableView *)tableView sectionForSectionIndexTitle:(NSString *)title atIndex:(NSInteger)index
?{
?    return index;
?}

如果返回某個(gè)index染苛,系統(tǒng)就會(huì)根據(jù)返回的這個(gè)index做偏移量的強(qiáng)制修正鹊漠。

解決辦法就是:

?- (NSInteger)tableView:(UITableView *)tableView sectionForSectionIndexTitle:(NSString *)title atIndex:(NSInteger)index
?{
?    return -1;
?}

返回 -1 就能取消掉系統(tǒng)的偏移量修正,不會(huì)滑動(dòng)到任何的section茶行,然后就可以自己控制tableView的偏移量啦~~~

自己控制偏移量.gif

搞定躯概。

續(xù):索引條相關(guān)樣式修改(UITableViewIndex)

1.修改索引條背景顏色,修改索引條字體顏色

?tableView.sectionIndexBackgroundColor = [UIColor clearColor];
?tableView.sectionIndexColor = [UIColor lightGrayColor];

2.修改索引條字體大小

?for (UIView *subView in _tableView.subviews) {
            
??if ([subView isKindOfClass:NSClassFromString(@"UITableViewIndex")]) {
???[subView setValue:[UIFont systemFontOfSize:16.0] forKey:@"font"];
??}
?}

修改索引條字體大小沒(méi)有public的api調(diào)用修改畔师,遍歷子控件找到UITableViewIndex后娶靡,需要使用kvc,keypath是font看锉。

3.修改索引條的寬度姿锭,或者修改索引條的左右間距
?同樣沒(méi)有api可以直接調(diào)用修改,可以在下面這個(gè)方法里面做一些手腳伯铣。

?- (NSArray *)sectionIndexTitlesForTableView:(UITableView *)tableView{
?    return array;
?}

給返回的字符串?dāng)?shù)組中的字符串前后添加\t呻此,通過(guò)修改字符串的長(zhǎng)度,來(lái)達(dá)到修改索引條寬度的要求腔寡。
?但需要注意的是焚鲜,索引條的寬度增加會(huì)影響到UITableViewcell寬度。

附一張UITableViewIndex的屬性圖:

UITableViewIndex屬性1.png
UITableViewIndex屬性2.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末放前,一起剝皮案震驚了整個(gè)濱河市忿磅,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌凭语,老刑警劉巖葱她,帶你破解...
    沈念sama閱讀 216,544評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異似扔,居然都是意外死亡览效,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,430評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門虫几,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人挽拔,你說(shuō)我怎么就攤上這事辆脸。” “怎么了螃诅?”我有些...
    開(kāi)封第一講書人閱讀 162,764評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵啡氢,是天一觀的道長(zhǎng)状囱。 經(jīng)常有香客問(wèn)我,道長(zhǎng)倘是,這世上最難降的妖魔是什么亭枷? 我笑而不...
    開(kāi)封第一講書人閱讀 58,193評(píng)論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮搀崭,結(jié)果婚禮上叨粘,老公的妹妹穿的比我還像新娘。我一直安慰自己瘤睹,他們只是感情好升敲,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,216評(píng)論 6 388
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著轰传,像睡著了一般驴党。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上获茬,一...
    開(kāi)封第一講書人閱讀 51,182評(píng)論 1 299
  • 那天港庄,我揣著相機(jī)與錄音,去河邊找鬼恕曲。 笑死鹏氧,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的码俩。 我是一名探鬼主播度帮,決...
    沈念sama閱讀 40,063評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼稿存!你這毒婦竟也來(lái)了笨篷?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書人閱讀 38,917評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤瓣履,失蹤者是張志新(化名)和其女友劉穎率翅,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體袖迎,經(jīng)...
    沈念sama閱讀 45,329評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡冕臭,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,543評(píng)論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了燕锥。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片辜贵。...
    茶點(diǎn)故事閱讀 39,722評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖归形,靈堂內(nèi)的尸體忽然破棺而出托慨,到底是詐尸還是另有隱情,我是刑警寧澤暇榴,帶...
    沈念sama閱讀 35,425評(píng)論 5 343
  • 正文 年R本政府宣布厚棵,位于F島的核電站蕉世,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏婆硬。R本人自食惡果不足惜狠轻,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,019評(píng)論 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望彬犯。 院中可真熱鬧向楼,春花似錦、人聲如沸躏嚎。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 31,671評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)卢佣。三九已至重荠,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間虚茶,已是汗流浹背戈鲁。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 32,825評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留嘹叫,地道東北人婆殿。 一個(gè)月前我還...
    沈念sama閱讀 47,729評(píng)論 2 368
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像罩扇,于是被迫代替她去往敵國(guó)和親婆芦。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,614評(píng)論 2 353

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

  • 1.nav1.navigationBar.barStyle=UIBarStyleBlack; //改變導(dǎo)航欄背景顏...
    SadMine閱讀 1,576評(píng)論 1 4
  • 概述在iOS開(kāi)發(fā)中UITableView可以說(shuō)是使用最廣泛的控件喂饥,我們平時(shí)使用的軟件中到處都可以看到它的影子消约,類似...
    liudhkk閱讀 9,037評(píng)論 3 38
  • 版權(quán)聲明:未經(jīng)本人允許,禁止轉(zhuǎn)載. 1. TableView初始化 1.UITableView有兩種風(fēng)格:UITa...
    蕭雪痕閱讀 2,908評(píng)論 2 10
  • 轉(zhuǎn)眼已經(jīng)是而立之年的歲數(shù)了,每當(dāng)看見(jiàn)單位里進(jìn)的新人员帮,都會(huì)感慨自己又老了一歲或粮。看著年輕的他們就會(huì)想起剛剛進(jìn)單位...
    歡喜的板栗閱讀 135評(píng)論 0 0
  • 一 有點(diǎn)模糊捞高。 但是它經(jīng)常在夢(mèng)里出現(xiàn)氯材。 渠里的水并不滿,淹過(guò)渠底半尺高的樣子硝岗,緩緩流動(dòng)氢哮。 其實(shí),夢(mèng)中的那道水渠在我...
    綠蘿寶貝閱讀 357評(píng)論 10 5