1. 程式人生 > >tableview 為某個特定section設定樣式

tableview 為某個特定section設定樣式

原理是從tableview中取出某個NSindexPath ,比如取出第0個 NSIndexPath *topPath = [self.tableView indexPathForCell:self.tableView.visibleCells.firstObject];

設定新值

self.topSection = topPath.section;

用KVC 來重新整理tableview;

@property NSInteger topSection;

- (void)viewDidLoad {
    [super viewDidLoad];
    [self addObserver:self forKeyPath:@"topSection" options:NSKeyValueObservingOptionNew|NSKeyValueObservingOptionOld context:nil];

}

- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section {    return 8;}
- (nullable UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section{
    UIView *view = [[UIView alloc] initWithFrame:CGRectMake(0, 0, SWidth, 8)];
    
    if (section == self.topSection) {
        view.backgroundColor = [UIColor redColor];
    }else{
        view.backgroundColor = [UIColor blackColor];
    }
    return view;
}
- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
 
    NSIndexPath *topPath = [self.tableView indexPathForCell:self.tableView.visibleCells.firstObject];
    self.topSection = topPath.section;
    DLog(@"self.topSection:%ld",self.topSection);
 
}

- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary<NSString *,id> *)change context:(void *)context {
    if ([keyPath isEqualToString:@"topSection"]) {
        [self.tableView reloadData];

       //或者(就需要記錄新值和舊值)

        [self.tableView reloadSections:indexSet withRowAnimation:UITableViewRowAnimationNone];

    }

}

- (void)dealloc
{
    [self removeObserver:self forKeyPath:@"topSection"];
}

相關推薦

tableview 某個特定section設定樣式

原理是從tableview中取出某個NSindexPath ,比如取出第0個 NSIndexPath *topPath = [self.tableView indexPathForCell:self.tableView.visibleCells.firstObject];

JQuery之某個div新增行樣式

JQuery都是以$符號開頭的,當然可以用jQuery代替$符號,他們是恆等的,同時也是相等的,()其實就是一個方法,裡面可以傳遞匿名函式等,選取某個div時,如id為div1則用$('#div1'),記得加#號,這裡跟我們寫css樣式時加的#號是同樣的道理。 例子如下:

屬性readonly的input設定樣式

原文網址:http://lilywangcn.iteye.com/blog/973943屬性為readonly的input不允許使用者輸入內容,然而在ie或chrome中,屬性為readonly的input 和一般input從介面上來看沒有任何區別,會給使用者輸入帶來稍許不便

React Native 中IOS和Android設定不同的Style樣式,一套程式碼解決雙端顯示

React Native 開發中,大多數的元件都是IOS和Android通用的,包括大量的功能性程式碼,至少有80%以上的程式碼可以複用,而剩下的一些元件樣式/少量的程式碼會需要區分雙端,但是為了這少量的程式碼把IOS和Android完全區分這明顯不合適,程式碼複用性下降,程式碼維護量上升

WPF 邊框設定樣式

<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x

orcale序列設定某個

1.刪除序列重新建立 --刪除 drop sequence seq_test ; --建立 create sequence seq_test increment by 1 start with 指定數字 2.不刪除序列 重置: create or repl

設定input typetext的文字框樣式

CSS 設定 input type="text" 標籤的樣式,而不會影響到 type="checkbox" 或其它input 第一種解決辦法:使用 JS 迴圈控制每個 type="text" 的文字框 <head runat="server"> <

應用程式-特定許可權設定未將com伺服器應用程式(CLSID{BA126AD-2166-11D1-00805FC1270E})

內心N煩躁; Event ID : 100016Source : DCOM The application-specific permission settings do not grant Local Activation permission for the COM Server applicati

Discuz!開發之將論壇首頁設定某個版塊頁面的方法

現在很多論壇都是使用開啟預設是主題列表的模式,不少站長經常諮詢如何設定成這種模式,今天就介紹一個簡單的方法: 開啟forum.php 找到: $mod = !in_array(C::app()->var['mod'], $modarray) ? 'index' : C

System.New、System.Dispose - 某個指針申請和釋放內存

log 釋放 com 釋放內存 system logs target ref dispose System.New、System.Dispose - 為某個指針申請和釋放內存 http://www.cnblogs.com/del/archive/2008/03/27/11

[PY3]——根據某個特定的字段來分組叠代訪問一個字段或序列?/ itertools.groupby( )函數

問題 根據 解決 有一個 道理 style 結果 字段 lar 問題 你有一個字典或者實例的序列,然後你想根據某個特定的字段(比如‘date’)來分組叠代訪問。 解決方案 itertools.groupby( )函數

獲取含有class某個值的a標簽或img標簽

link log pre lin 獲取 true light cnblogs csharp <a\s+[^>]*class=‘fjLink‘[^>]*>[^<]*</a>|<img\s+[^>]*class=‘fjLi

使用<span>標簽文字設置單獨樣式

例子 doctype doc 講解 進行 註意 道德 ron 沒有 這一小節講解<span>標簽,我們對<em>、<strong>、<span>這三個標簽進行一下總結: 1. <em>和<strong>

jq控制select值某個時選中

selected attr javascrip lec ctc div pre script ttr $("#selectche_type option").each(function(){//用id ,用class好像不得,不知道為何

多個 (li) 標簽如何獲取獲取選中的裏面的某個特定

html class gda 兩種 put ul li alert 標簽 function 兩種方式: 1/.根據div中的class屬性 指定ul 找到選中的單個li $(".f_dingdan ul li").click(function(){ var a=$

算法題:三個數相加等於某個特定

blog 所有 etc solution 給定 ray a + b 存在 得到 題目來自於leetcode第十五題 給定一個n個整數的數組S,是否存在S中的元素a,b,c,使得a + b + c = 0? 查找數組中所有唯一的三元組,它們的總和為零。 註意:解決方案集不能包

二叉樹中和某個值得路徑

定義 pop esc cto OS IT AC root 二叉 題目描述 輸入一顆二叉樹和一個整數,打印出二叉樹中結點值的和為輸入整數的所有路徑。路徑定義為從樹的根結點開始往下一直到葉結點所經過的結點形成一條路徑。 實現: class Solution {

Git某個域名設置代理

tps git hub proxy 配置 代理 shell 設置 config 打開Git 配置文件 vi ~/.gitconfig 添加如下配置: [http "https://github.com/"] proxy = http://127

Qt控制元件增加屬性並通過新增的屬性設定樣式

Qt控制元件增加屬性並通過新增的屬性設定樣式 1.應用場景         在Qt應用程式設計中經常要對應用的介面進行美化,這裡要用到樣式表qss。下面說的方法適用於對某一種控制元件在介面上有幾種不用的風格樣式,例如

webView中匯入百度地圖和設定樣式

首先看效果圖: 怎樣獲取百度地圖api 第一種方式:找到“百度地圖api” 第二種方式:”百度地圖生成器“ 注意此方式生成的地圖使用的是百度地圖api1.1 設定地圖樣式 博主使用的是用百度地圖生成器生成的地圖,可以先儲存成html格式,檢視地圖