iOS tableView右側(cè)索引視圖狀態(tài)獲取的方法實例
前言
在iPhone和其他iOS的很多程序中都會看到Table View的出現(xiàn),除了一般的表格資料展示之外,設(shè)置的屬性資料往往也用到Table View,Table View主要分為以下兩種:

Plain:這是普通的列表風格
Grouped :這是分塊風格。
本文介紹的是iOS tableView右側(cè)索引視圖狀態(tài)獲取的相關(guān)內(nèi)容,下面來看正文
需求
一圖勝千言!

在觸摸右側(cè)索引欄時
需要展示對應(yīng)的組號名稱
手指離開時消失
實現(xiàn)
通過Xcode查看視圖層次結(jié)構(gòu)
右側(cè)索引視圖的繼承關(guān)系
是這樣的:
UITableViewIndex
UIControl
UIView
UIResponder
NSObject
很顯然UITableViewIndex 是私有的
但是UIControl 是公開的
于是
通過遍歷tableView的子視圖來獲取它
- (void)reloadData
{
[_tableView reloadData];
for (UIView *view in _tableView.subviews) {
if ([view isKindOfClass:[UIControl class]]) {
_indexControl = (UIControl *)view;
}
}
}
接著
在代理方法里面
處理相關(guān)邏輯就OK了
/// 點擊右側(cè)索引時的代理方法
- (NSInteger)tableView:(UITableView *)tableView sectionForSectionIndexTitle:(NSString *)title atIndex:(NSInteger)index
{
_sectionLabel.text = title; // 顯示 組號標題 的Label
if (_sectionLabel.hidden) { // 隱藏了,顯示它
_sectionLabel.hidden = NO;
}
// 延遲 1 秒隱藏
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
// isTracking: A Boolean value indicating whether the control is currently tracking touch events.
if (!_indexControl.isTracking) { // 沒有觸摸時,隱藏它
_sectionLabel.hidden = YES;
}
});
return index;
}
總結(jié)
到此這篇關(guān)于iOS tableView右側(cè)索引視圖狀態(tài)獲取的文章就介紹到這了,更多相關(guān)iOS tableView索引視圖狀態(tài)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
iOS程序開發(fā)之使用PlaceholderImageView實現(xiàn)優(yōu)雅的圖片加載效果
這篇文章主要介紹了ioS程序開發(fā)之使用PlaceholderImageView實現(xiàn)優(yōu)雅的圖片加載效果的相關(guān)資料,非常不錯,具有參考借鑒價值,需要的朋友可以參考下2016-09-09
iOS的UI開發(fā)中UITabBarControlle的基本使用教程
這篇文章主要介紹了iOS的UI開發(fā)中UITabBarControlle的基本使用教程,代碼基于傳統(tǒng)的Objective-C,需要的朋友可以參考下2015-12-12
iOS開發(fā)項目- 基于WebSocket的聊天通訊(2)
這篇文章主要介紹了iOS開發(fā)項目- 基于WebSocket的聊天通訊,可以實現(xiàn)錄音和音樂播放,有需要的可以了解一下。2016-11-11
解決ios h5 input輸入框被輸入法彈出一塊區(qū)域的問題
今天小編就為大家分享一篇解決ios h5 input輸入框被輸入法彈出一塊區(qū)域的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-08-08

