Mar*_*don 0 iphone cocoa-touch objective-c uitableview
我正在构建一个带有搜索栏的普通样式表视图,而我在Apple的表视图中无法复制"装订线"的外观(当拖动表格视图时).
联系人截图http://img200.imageshack.us/img200/2633/picture5m.png
如果我设置表格视图的背景颜色,排水沟看起来很好,但我的单元格使用该颜色作为背景颜色.
我已经尝试设置单元格和单元格的contentView的背景颜色tableView:cellForRowAtIndexPath:,但它稍后会被覆盖.我也尝试创建一个空视图并将其设置为单元格的backgroundView和contentView的子视图,但只有边缘为白色.
我能想到两种解决方案:
这两种解决方案都需要相当多的工作.有没有更简单的方法?
更新:第一个解决方案不起作用.我必须将表格视图的背景颜色设置为clearColor,以便将装订线更改为视图的颜色.但是,当我这样做时,我得到的结果与在表视图上设置backgroundColor相同.
Mar*_*don 10
调用-tableView:willDisplayCell:forRowAtIndexPath:
了一个委托方法,可以在表视图进行修改后自定义单元格的背景颜色.从UITableViewDelegate参考:
表视图在使用单元格绘制行之前将此消息发送到其委托,从而允许委托在显示单元格对象之前对其进行自定义.此方法为委托提供了覆盖表视图前面设置的基于状态的属性的机会,例如选择和背景颜色.委托返回后,表视图仅设置alpha和frame属性,然后仅在向行或向外滑动时为行设置动画.
此外,由于在尝试滚动浏览最后一个单元格时,背景颜色从表格底部向外窥视,我必须创建页脚视图并更新表格视图的内容插入:
UIView *footerView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 320)];
footerView.backgroundColor = [UIColor whiteColor];
self.tableView.tableFooterView = footerView;
[footerView release];
UIEdgeInsets inset = self.tableView.contentInset;
inset.bottom = 44 - footerView.frame.size.height;
self.tableView.contentInset = inset;
Run Code Online (Sandbox Code Playgroud)