Objective_C 中 UIView 的背景颜色是如何处理的?

2024-03-12

我一直在玩一些苹果的示例代码 http://developer.apple.com/library/ios/#samplecode/TableViewSuite/Introduction/Intro.html#//apple_ref/doc/uid/DTS40007318用于自定义 UITableViewCells。我遇到了一些奇怪的行为,这让我对背景颜色的工作原理完全困惑。

以下代码是自定义 UITableViewCell 中 Apple 示例自定义 UIView 的简化版本。 init 函数将背景颜色设置为紫色,然后drawRect 将背景颜色设置为绿色。我希望永远不会看到紫色,但这就是我所看到的。通过 NSLog 语句,我知道正在为每个单元格调用 init 方法,然后为每个单元格调用 drawRect 。绿色设置似乎被忽略了。如果我打电话[self setNeedsDisplay]初始加载后的任何时候,背景都会正确设置为绿色。

- (id)initWithFrame:(CGRect)frame {
    counter = 0;
    if ((self = [super initWithFrame:frame])) {
        self.opaque = YES;
        self.backgroundColor = [UIColor purpleColor];
    }
    return self;
}

- (void)drawRect:(CGRect)rect { 
    self.backgroundColor = [UIColor greenColor];
}

谁能向我解释为什么会发生这样的事情?


Your -drawRect:实现实际上并不进行任何绘图,因此它本身不会改变任何内容。

据推测,绘图是由与您的视图关联的图层完成的。看起来,在您的环境中,背景色图层正在您的绘制之前进行绘制。-drawRect:方法被调用。当图层重绘时,您的-drawRect:方法也恰好被调用。因此,在更改背景颜色后,在背景图层再次绘制之前您不会看到任何变化,您可以看出发生了这种情况,因为您的-drawRect:再次被呼叫。

如果您希望立即应用颜色更改,则需要将视图标记为需要显示,以便它将使用更改后的背景颜色完全重绘。

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

Objective_C 中 UIView 的背景颜色是如何处理的? 的相关文章

  • NSHTTPCookieStorage 是否跨应用程序持续存在?

    所以我只是好奇 NSHTTPCookieStorage 是否跨应用程序持久存在 或者仅在当前应用程序本地 我希望在另一个应用程序中收集的一些 cookie 可以在搜索应用程序中访问 是这样的吗 谢谢 PS 这是在 iPhone 或 iPad
  • NSMutableArray 实例变量内存管理

    我正在做最后一点内存管理整理 但有些东西我不明白 我已经检查了所有文档 Stack Overflow 等 但仍然不明白 我怀疑这与数组有关 我有一个NSMutableArray作为实例变量 我用它来保存从另一个数组中的对象创建的对象 vie
  • 如何建立辅助NSSortDescriptor排序键?

    我已成功按排序键对数据进行排序lastName 但我想知道如何排序lastName 然后由firstName 这是我用来排序的代码lastName NSSortDescriptor sortDescriptor NSSortDescript
  • 滑动删除不起作用

    滑动删除功能在我的表格视图中不起作用 我已经在导航栏中实现了 commitEditingStyle 委托和编辑按钮 因此 当用户单击编辑按钮时 删除和添加按钮会相应显示 但是 在滑动时 删除按钮不会出现 并且似乎它无法将滑动识别为对 set
  • 您是否标记 UIView 或将它们保留为属性?

    这主要是一个风格问题 但自从我开始为 iPhone 编程以来 我一直很好奇其他人的想法是什么 当您的 iPhone 应用程序中有一个 UIView 并且需要在应用程序的其他位置访问它时 通常在视图控制器中的另一个函数中 您是否喜欢用整数标记
  • 如何禁用 UITableView 中某些行的删除操作?

    我知道使用setEditing 启用UITableView的编辑模式 但我更喜欢禁用某些特定行的操作 启用其他行 是否可以 Thanks interdev 实施the tableView canEditRowAtIndexPath meth
  • 我如何从子视图导航到 mainviewcontroller

    我刚刚开始使用 swift 我创建了一个子视图 上面有一个按钮 我想使用该按钮将我带到我的主视图控制器 我对不同的按钮使用了相同的功能 但是在同一文件中具有一个功能允许该按钮工作 代码如下 var playAgainButton UIBut
  • 如何使用 iPhone SDK 实现可滑动的图像堆栈(例如照片应用程序)?

    我想获取一堆图像 或者可能是一组用于下载图像的 URL 并以全屏方式显示它们 一次一个 使用 iPhone SDK 使用用户滑动来平滑地为堆栈中的下一个图像设置动画 Apple 的 Photo app 似乎可以做到这一点 此外 如果尚未检索
  • 从 UIImagePickerController 相机视图推送 viewController

    我正在开发一款消息应用程序 类似于 WhatsApp 用户可以互相发送文本和图像消息 当用户想要发送图像时 他可以从相机胶卷中选择一张图像 也可以用相机拍摄一张图像 这就是我介绍的方式UIImagePickerController对于这两种
  • iPhone 应用程序中的异步、同步、线程

    我正处于一个应用程序的设计阶段 该应用程序将利用 REST Web 服务 并且在使用异步 同步和线程方面遇到了困境 这是场景 假设您有三个选项可供深入研究 每个选项都有自己的基于 REST 的资源 我可以使用同步请求延迟加载每个请求 但这会
  • 覆盖层不与 UITableView 一起滚动 - iOS

    我有一个 UITableView 类 它使用以下方法在转到下一个屏幕时调用加载覆盖 问题是这个加载屏幕不随列表滚动 所以如果你滚动一点并单击某些东西 加载屏幕不会显示 因为它位于顶部 如何让加载屏幕始终保持在 UITableView 的顶部
  • Objective-C – 拥有包含 TestFlight SDK 的 TestFlight 配置

    我已按照 TestFlight 的说明复制 发布 配置 我还使用 TestFlight SDK 从我的应用程序获取实时报告 通过这样做 我必须在我的应用程序中包含一些 TestFlight 代码 当然 我不想在我的应用程序的发布版本中包含此
  • 在 Objective C 的类方法中引用类本身

    我希望我没有跳过 ObjC 手册中的这一部分 但是是否可以从类的一个类方法中引用该类 就像在 PHP 中一样 您将使用 this 来引用当前实例 而 self 引用实例的类 this 的 ObjC 等价物将是 self 那么 PHP 的 s
  • 水平 UICollectionView 单行布局

    我正在尝试使用以下命令设置简单的水平布局UICollectionView 兜圈子却没有达到预期的结果 所以任何指针或例子将不胜感激 我粘贴经常更改的代码但没有成功可能没什么意义 该图像显示两行 第一行是单个项目 尺寸正确并且在中心正确对齐
  • iOS - UITableViewCell 使文本加粗

    我有一个字符串 NSString userInfo James Johnson james 我想做的就是大胆James Johnson并保留 james正常字体 所以我尝试过的是使用NSAttributedString但为了完成这个过程 我
  • 如何在 NSTextView 中使用 SPACE 而不是 TAB

    我只知道如何修改 NSTextView 中的制表符宽度 NSMutableParagraphStyle paragraphStyle self defaultParagraphStyle mutableCopy paragraphStyle
  • 在 iOS 7 中 viewForHeaderInSection 部分是从 1 开始而不是从 0 开始

    我正在处理UITableView在我的项目中 这个项目是在 Xcode 4 5 中创建的 现在我正在使用 Xcode 5 所以我的问题是何时在 iOS 6 中运行我的项目 viewForHeaderInSection方法部分从 0 开始没问
  • 通过 Button Swift 中的标签发送行和部分

    我里面有这个cellForRowAtIndexPath cell plusBut tag indexPath row cell plusBut addTarget self action plusHit forControlEvents U
  • 从现有坐标地图套件中查找最近的位置

    我正在为拥有多家商店的客户开发 iPhone 应用程序 目标 C 我有数组中所有商店 20 的坐标 纬度 长 目前我正在考虑循环遍历商店坐标数组并获取从用户当前位置到商店位置的距离 然后将它们添加到数组中并按最小距离进行排序 这是正确的方法
  • 如何在 UITableView 的 switch 语句中创建变量?

    我正在构建一个包含三个部分的 tableView 我已经完成了前两个工作 但最后一个有点阻力 我的问题似乎涉及尝试在 switch 语句中声明变量 实际上是嵌套的 switch 语句 据我所知 这不是一个好主意 但在这种情况下 这似乎是唯一

随机推荐

  • 在没有数据库或用户名的情况下使用 php 密码保护文件夹/页面的最佳方法是什么

    使用没有数据库或用户名但使用 php 密码保护文件夹的最佳方法是什么 基本上 我有一个页面将列出组织的联系人 并且需要密码保护该文件夹 而无需为每个用户提供帐户 只需一个密码 该密码会经常更改并分发给群组 我知道它不是很安全 但我仍然想知道
  • ARM 未定义指令错误

    我在运行嵌入式系统 无协处理器 无 MMU Atmel 9263 时收到未定义指令错误 嵌入式系统的内存范围为 0x20000000 0x23FFFFFF 目前为止我遇到过两个案例 SP 0x0030B840 LR 2000AE78 LR指
  • 何时在 Gradle 任务中使用“<<”

    有时我会看到 task hey lt lt println Hello Gradle 其他时候我看到 task hey println Hello Gradle 什么时候使用 lt lt 你什么时候不这样做 以及为什么 lt lt 是简写d
  • 如何使用 Linq.Expressions 查询集合

    我构建了一个自定义 IQueryable 提供程序 例如 提供者转换查询 c PurchaseDate new DateTime 2011 11 29 c Name Elizabeth Brown 从底层代码到 System Linq Ex
  • Google 地图 V3 可见标记上的 fitBounds

    发现很难获得关于此的清晰信息 但我想要实现的是可见标记上的 fitBounds 该数组定义标题 类别 纬度 经度和 href 它将所有标记添加到地图 但仅显示第一个类别 当您单击其他类别时 它也会显示这些类别 我可以让 fitBounds
  • 在python2虚拟环境中安装python3

    我有一个在 Python 2 虚拟环境中运行的 Flask 应用程序 我想要运行Python 3程序 所以我需要将python3安装到虚拟环境中 我该怎么做呢 我必须重新创建环境吗 这是一次艰难的迁移吗 不建议混合使用多个版本的Python
  • React Router 与 Spring Boot 路由冲突

    我正在前端使用 React 创建 Spring Boot 应用程序 我可以在浏览器中打开该页面 但在后端出现错误 RequestRejectedException The request was rejected because the U
  • Core Audio (iOS 5.1) Reverb2 属性不存在,错误代码 -10877

    我正在玩苹果的示例项目 LoadPresetDemo 我添加了混响音频单元AudioUnit kAudioUnitSubType Reverb2如图所示 这是唯一可用的 iOS 混响 在 CoreAudio 头文件 AudioUnitPar
  • Javascript DOM .querySelector() null 问题

    我正在用纯 JavaScript 编写代码 有很多场景我会使用querySelector 方法 我多次遇到问题 比如 对于以下代码 未捕获类型错误 无法读取 null 的属性 classList document querySelector
  • 使用 Docker compose 传递 Dockerfile 的参数

    我正在尝试在构建阶段使用参数化我的 dockerfiles 并在 Docker compose 中使用参数 例如 在 Docker compose 中 我定义了一项名为 bpp 的服务 如下所示 bpp build context dock
  • 如何在 Flutter 中检测另一个应用程序是否打开?

    已编辑 我想创建一个阻止使用社交媒体应用程序的应用程序 就像他们打开 Instagram 或其他东西一样 Flutter 应用程序就会知道 当我的 Flutter 应用程序打开时 如何检测另一个应用程序 例如 Instagram 或 Twi
  • 数据集可扩展吗?像 myspace 这样的网站会使用它们进行数据检索吗?

    数据集的可扩展性如何 团队成员希望使用数据集进行数据检索和操作 使用内置的数据完整性等来使用对象执行数据更新等 我们的系统预计将扩展到数百万用户 我读到的所有内容都是针对企业环境中的数据集的 我在这里错了还是什么 免责声明 这些是我根据个人
  • 使用 Objective-C 以编程方式释放系统内存

    所以 这就是我想做的 释放系统内存 非活动内存 以同样的方式purge命令确实如此 尽管是以编程方式 我已经尝试过这里的代码 其作者声称它有效 但它所做的只是导致 Mac OS X 冻结 void free up memory int c
  • Prolog - 回文函子

    我正在尝试写一个谓词palindrome 1在 Prolog 中 当且仅当其列表输入由回文列表组成时 这才是正确的 例如 palindrome 1 2 3 4 5 4 3 2 1 is true 有什么想法或解决方案吗 回文列表是一个向后读
  • AutoLayout,无法同时满足约束

    刚刚开始学习 iOS AutoLayout 界面构建器非常简单 但是当我尝试在代码上存档相同的内容时 self view addConstraints NSLayoutConstraint constraintsWithVisualForm
  • 防止 ASP.NET 对输出中的字符串进行编码

    当页面呈现时 如何阻止 ASP Net 对列表项中的锚标记进行编码 我有一个对象的集合 每个对象都有一个链接属性 我执行了 foreach 并尝试在 BulletedList 中输出链接 但 ASP 对所有链接进行了编码 任何想法 谢谢 这
  • RxJava-在 Observable 链中执行 peek() 或 void 操作?

    Java 8 lambda 流有一个peek 运算符允许您对每个项目执行 void 操作 这通常用于调试 但它也是一种欺骗和启动 void 操作而不映射到某些内容的好方法 RxJava 中有类似的东西吗 也许我没有遵循良好的实践或反应性思考
  • 如何在 Aptana Studio 3 中设置默认文件权限?

    每次我将文件上传到远程主机并尝试打开它时 我都会收到 内部服务器错误 消息 并且文件权限设置为 666 需要设置为 644 才能打开 如何将默认文件权限设置为 644 打开首选项对话框 Window gt Preferences 然后前往
  • Python Flask Heroku 无法导入模块

    我收到以下错误 ModuleNotFoundError No module named class1 结构 hello world src init main class1 Procfile The main1文件看起来像这样 from c
  • Objective_C 中 UIView 的背景颜色是如何处理的?

    我一直在玩一些苹果的示例代码 http developer apple com library ios samplecode TableViewSuite Introduction Intro html apple ref doc uid