我有一个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