我有一個UITableView
與它的backgroundView
屬性設置爲UIImageView
顯示背景圖像。然後我在圖像上繪製一些細胞,一切都很好。防止UITableView contentInset屬性影響其backgroundView?
現在我試圖在屏幕頂部顯示一個欄。爲了防止欄覆蓋表視圖的頂部行,我將其contentInset
屬性設置爲UIEdgeInsetsMake([topBar frame].size.height, 0, 0, 0)
。
問題是,改變contentInset
似乎也推動了背景圖像視圖,所以我的桌子上有一個奇怪的白色空白。 Weirder仍然,只要我滾動表視圖,它自己修復。任何人有任何想法發生了什麼?
如果我改變表格的frame
而不是其contentInset
爲頂部欄騰出空間,一切正常,但表格視圖的背景圖片也向下移動,這使得視圖與其他表格相比顯得不一致應用中沒有頂部欄的視圖。
這是我如何設置表的表中的init
法背景:
_backgroundImageView = [[UIImageView alloc] initWithFrame:backgroundRect];
[_backgroundImageView setImage:...];
[_backgroundImageView setContentMode:UIViewContentModeBottom];
[self setBackgroundView:_backgroundImageView];
並在視圖控制器的viewDidLoad
[_tableView setContentInset:UIEdgeInsetsMake([_topBarView frame].size.height, 0, 0, 0)];
編輯:好,移動setContentInset
出viewDidLoad
分成viewDidAppear:
使其正常工作,除非視圖顯示內容插入錯誤,然後它捕捉一旦出現視圖就會進入到位。將行移動到viewWillAppear:
而不是使其行爲與以前一樣。猜猜viewWillAppear:
和viewDidAppear:
之間有什麼奇怪的事發生在我不知道的地方......
哈哈,我不知道那是怎麼發生在我身上的。猜猜我會那麼做。當**背景**顯然不是**內容**的一部分時,我仍然對影響**背景**視圖的**內容**插入屬性感到憤怒。 – 2012-07-22 05:09:51