更改从 xib 加载的 UITableViewHeaderFooterView 上的背景颜色表示使用 contentView.backgroundColor

2024-06-07

I'm 从 xib 文件创建 UITableViewHeaderFooterView https://stackoverflow.com/a/20073742/35690,几乎一切都工作正常。

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

在 UITableViewHeaderFooterView 上设置背景颜色已被弃用。请改用 contentView.backgroundColor。

这意味着我有两个问题:

  • 如果我不想看到该警告,我必须去掉 xib 文件中的背景颜色。(这是不可取的,因为这意味着我的 xib 不再反映视图在运行时的样子)。
  • 当我尝试通过代码更改背景颜色时,我得到了contentView.backgroundColor建议,但是当我尝试遵循该建议时,什么也没有发生。 (这是因为contentView is nil.)

Note:有一个类似的问题 https://stackoverflow.com/questions/18800743/uitableviewheaderfooterview-cant-change-custom-background-when-loading-from-nib在这里,但这主要涉及静音消息,而不是找到解决上述两个问题的替代解决方案。

Update:需要明确的是,我想继续使用 xib 文件作为标题视图,并且希望能够调用出队ReusableHeaderFooterViewWithIdentifier: https://developer.apple.com/library/ios/documentation/uikit/reference/UITableView_Class/Reference/Reference.html#//apple_ref/occ/instm/UITableView/dequeueReusableHeaderFooterViewWithIdentifier:以便表可以有效地管理视图。


这是我发现解决此问题的最佳方法:

  1. 重置你的背景颜色UITableViewHeaderFooterView to Default.
  2. 直接在您的实例下方添加一个视图UITableViewHeaderFooterView,并称之为内容视图。 (这正是苹果所做的UITableViewCell,我们只是模仿这个结构。)
  3. 您现在可以将内容视图的背景颜色更改为您在 xib 文件中想要的任何颜色。
  4. 放置任何其他视图inside the Content View.
  5. 重新定义contentView扩展方法中的属性,并添加IBOutlet到它的定义。 (参见下面的代码。)
  6. 将该属性与您创建的内容视图关联起来,就像与任何 IBOutlet 关联一样。
  7. 您现在可以使用更改背景颜色contentView.backgroundColor在代码中,就像错误消息告诉您的那样。

.h file:

@interface ABCHeaderView : UITableViewHeaderFooterView
@end

.m file:

@interface ABCHeaderView ()

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

@end

@implementation ABCHeaderView

@synthesize contentView;

@end

该层次结构符合苹果的文档 https://developer.apple.com/library/ios/documentation/uikit/reference/UITableViewHeaderFooterView_class/Reference/Reference.html#//apple_ref/occ/instp/UITableViewHeaderFooterView/backgroundView:

如果您要显示自定义内容,请为您的内容创建子视图并将它们添加到 contentView 属性中的视图中。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

更改从 xib 加载的 UITableViewHeaderFooterView 上的背景颜色表示使用 contentView.backgroundColor 的相关文章

  • 是否可以?相机 API ios [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我想在应用程序中实现一项功能 当用户
  • 从 Google/Facebook 帐户重新验证用户身份

    因此 我需要创建一个 REST API 来为 IOS 应用程序提供功能 我们允许用户仅使用普通帐户或使用脸书 谷歌登录 我最近一直在阅读 OAuth 我想我了解在我的情况下如何使用 OAuth 的过程 当用户使用脸书 谷歌登录 在我的应用程
  • 使用 Swift 更改整个应用程序中的 UILabel 文本颜色

    在 Swift 中有什么方法可以在整个应用程序中立即更改 UILabel 的文本颜色属性吗 我尝试过使用外观属性 但这不适用于 UILabel textColor 任何方式或任何同样工作的库 一种方法是使用颜色设置 首先在您的 xcasse
  • 如果您查看内部,nib 文件到底是什么样子的?

    我刚刚学习 nibs 和 swift 并对某些东西感到好奇 我知道 如果您有一个 main storyboard 文件 则首先加载根视图控制器的笔尖 然后加载该视图控制器下可能分层存在的任何视图 但是 我想知道一些事情 当他们说笔尖已 加载
  • 从 xib 中提取 UI 项目?

    经过一番浏览文档后 我决定使用以下技术 使用 viewWithTag 从 loadNibNamed owner options 返回的主根视图中提取子视图 首先 我有点困惑 因为我假设 loadNibNamed owner options
  • just_audio 无法在 ios flutter 上工作未处理的异常:(-11800)操作无法完成

    我正在尝试从它自己的存储库运行 just audio 示例项目https github com ryanheise just audio tree master just audio example https github com rya
  • NSMutableData 删除字节?

    我可以使用以下命令轻松地将字节添加到 NSMutableData 实例appendData方法 但是我没有看到任何类似的删除数据的方法 我是否忽略了某些内容 或者我是否需要创建一个新对象并仅复制我需要的字节 请参阅以下方法的文档 void
  • UIAlertView 中的 MPVolumeView?

    是否可以将 MPVolumeView 放入 UIAlertView 中 我已经尝试过put它在里面 但不显示 这可能是sizeToFit or initWithFrame 部分 有没有办法测试是否MPVolumeView实际上正在被创建吗
  • 如何使用 HTTP 标头发送非英语 unicode 字符串?

    我是 HTTP 相关问题的新手 我的问题是在 iOS 开发中 我想使用 HTTP 标头发送一个字符串 所以我使用 httpRequest setValue nonEnglishString forHTTPHeaderField custom
  • 处理 NSPropertyListSerialization 中的 CFNull 对象

    在我的应用程序中 我尝试序列化服务器响应字典并将其写入文件系统 但对于某些响应 我收到错误 属性列表格式无效 原因是服务器响应中的 CFNull 对象 现在 服务器响应将不断变化 因此我没有明确的方法来删除 CFNull 对象 下面是我的代
  • 将 HTML 字符串加载到 UIWebView 中的延迟

    我在导航控制器中有两个视图控制器 第一个视图控制器有一个带有按钮的菜单 按下此按钮将移动到第二个视图控制器并将 html 字符串加载到 UIWebView 中 没有其他东西被加载到 webview 中 只是一个简单的 NSString 其中
  • Xcode 6.3 Parse SDK 1.7.1 PFTableViewCell 错误“具有不兼容的类型”

    My code override func tableView tableView UITableView cellForRowAtIndexPath indexPath NSIndexPath object PFObject gt PFT
  • 为什么 iOS 5.0 不喜欢纯窗口应用程序?为什么它要求使用视图控制器?

    我有一个使用 Xcode 4 0 的 基于窗口的应用程序 模板创建的 iOS 应用程序 当时运行良好 并且使用的是 iOS 4 3 SDK 这是一个简单地将按钮 标签等直接放置到窗口上的应用程序 没有视图控制器 什么都没有 但现在我已经升级
  • 如何获取 UITableView 内容视图的大小?

    我想在填充表格时获取 UITableView 内容视图的大小 关于如何执行此操作有什么建议吗 Allows you to perform layout before the drawing cycle happens layoutIfNee
  • SDWebImage 显示缓存中图像的占位符

    在 iOS 5 1 项目 iPad 中使用 SDWebImage 3 我们展示相当大的图像 700x500 并且我们有很多图像 1000 我们预取图像并缓存到磁盘 然后允许用户浏览它们 效果很好 除了当您浏览图像时 您总是会看到占位符显示一
  • 带约束的 Swift 动画

    是否可以通过改变约束来制作 UIView 动画 基本上 我想要动画myv UIView 具有 x y 高度和宽度约束 使用 UIView animateWithDuration 1 5 通过改变旧的限制 是的 这是可能的 你可以这样做 fu
  • 将 Facebook 图片 URL 上传到 Firebase 存储

    我正在尝试将用户的 Facebook 个人资料图片上传到 Firebase 存储 let dictionary result as NSDictionary let data dictionary objectForKey data let
  • extern NSString *const 在类中。

    你好 我有这个头文件 import
  • 桌面上的 AVAudioSession?

    在 mac 桌面上 我试图录制系统声音 以及可选的麦克风声音 但一开始我只是录制系统声音 我正在遵循本指南 https www appcoda com ios avfoundation framework tutorial https ww
  • 如何将 NSAppTransportSecurity 添加到 Cordova 项目

    我正在从事一个 ionic cordova 项目 该应用程序需要配置 iOS 9 版本的应用程序传输安全例外 有谁知道如何将以下配置添加到 cordova 项目配置文件中 配置 xml

随机推荐