ios – 在从xib加载的UITableViewHeaderFooterView上更改背景颜色说要使用contentView.backgroundColor

前端之家收集整理的这篇文章主要介绍了ios – 在从xib加载的UITableViewHeaderFooterView上更改背景颜色说要使用contentView.backgroundColor前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我是 creating a UITableViewHeaderFooterView from a xib file,几乎一切正常.

问题是现在,当我尝试更改背景颜色(或者如果我在xib中配置了一个),它将不断地将该消息输出到控制台:

Setting the background color on UITableViewHeaderFooterView has been deprecated. Please use contentView.backgroundColor instead.

这意味着我有两个问题:

>如果我不想看到这个警告,我必须摆脱xib文件中的背景颜色(这是不希望的,因为这意味着我的xib不再反映在运行时视图的外观).
>当我尝试通过代码更改背景颜色时,我得到contentView.backgroundColor的建议,但是当我尝试遵循这个建议,没有任何反应. (这是因为contentView为零)

注意:这里有一个similar question,但主要是关于静音消息,没有找到一个解决上述两个问题的替代解决方案.

更新:要清楚,我想继续使用头文件视图的xib文件,并希望能够调用dequeueReusableHeaderFooterViewWithIdentifier:,以便在管理视图时该表可以是高效的.

解决方法

这是找到解决这个问题的最好方法

>将UITableViewHeaderFooterView的背景颜色重置为默认值.
>直接在UITableViewHeaderFooterView的实例下面添加一个视图,并将其称为“内容视图”. (这正是苹果与UITableViewCell做的,我们只是模仿那个结构.)
>现在,您可以将内容视图的背景颜色更改为xib文件中所需的任何内容.
>将任何其他视图放在内容视图中.
>在扩展方法中重新定义contentView属性,并将IBOutlet添加到其定义中. (见下面的代码.)
>将属性与您创建的内容视图相关联,就像使用任何IBOutlet一样.
>您现在可以使用contentView.backgroundColor在代码中更改背景颜色,就像错误消息一样.

.h文件

@interface ABCHeaderView : UITableViewHeaderFooterView
@end

.m文件

@interface ABCHeaderView ()

@property (nonatomic,readwrite,retain) IBOutlet UIView *contentView;

@end

@implementation ABCHeaderView

@synthesize contentView;

@end

这种层次结构与Apple’s documentation是一致的:

If you have custom content to display,create the subviews for your content and add them to the view in the contentView property.

原文链接:https://www.f2er.com/iOS/337037.html

猜你在找的iOS相关文章