为什么drawRect:在不调用[superdrawrect:rect]的情况下工作?

2024-04-04

我在我的视图之一中重写了drawRect:,即使不调用[superdrawrect:rect]它也能工作。这是如何运作的?

- (void)drawRect:(CGRect)rect{  
    CGContextRef context = UIGraphicsGetCurrentContext();
    CGContextSetBlendMode(context, kCGBlendModeDestinationOver);
    [[UIColor clearColor] setFill];
    UIRectFill(CGRectMake(0,0,100,100));
}

从文档中:

“此方法的默认实现不执行任何操作。子类 使用 Core Graphics 和 UIKit 等技术来绘制它们的 视图的内容应该重写此方法并实现其绘制 那里有代码”

也来自文档..

“如果您直接子类化 UIView,则此方法的实现 不需要调用super。但是,如果您要子类化 不同的视图类,你应该在你的某个时刻调用 super 执行。”

文档链接 https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIView_Class/index.html#//apple_ref/occ/instm/UIView/drawRect:

我假设,你的超类是 UIView。因此,即使不调用 [super drawrect:rect] ,它也能工作。因为drawRect:因为UIView什么也没做。因此,在这种情况下,无论您是否调用 [super drawrect:rect] 都没有区别。

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

为什么drawRect:在不调用[superdrawrect:rect]的情况下工作? 的相关文章

  • 我可以在 Swift 3 项目中使用 Swift 2.3 框架吗?

    在我的项目中 我将所有私有 swift 2 3 文件迁移到 swift 3 我想使用用 swift 2 3 编写的遗留框架 直到它们有 swift 3 版本 我尝试添加 使用旧版 Swift 版本 是 清除 构建我的项目 但我仍然遇到一些麻
  • iOS模型层通知Controller对象

    https developer apple com library archive documentation General Conceptual DevPedia CocoaCore MVC html https developer a
  • 将 .p12 证书存储在钥匙串中以供稍后使用

    我正在尝试按照 Apple 文档处理此处的客户端 p12 证书 https developer apple com library ios documentation Security Conceptual CertKeyTrustProg
  • xcode 6 资产目录 iPhone 6

    这个问题还没有得到解答 使用资产目录时 特定于设备 非通用 选项为 1x 2x r 2x 3x 1x 是不必要的 因为它不是视网膜 2x 是 ip4 的最佳选择 分辨率为 640x960 r 2x 适合 ip5 分辨率为 640x1136
  • sizeToFit 运行异常

    我有一段代码 每次发生后端数据库更改时都会执行 本质上我在父视图中有一个标签 标签由许多状态消息之一更新 每个状态消息位于不同的行上 并以换行符 n 结尾 每条状态消息只能在一行上 并且不能过多 我遇到的问题是 当视图首次重新加载时 一切正
  • NSIndexpath.item 与 NSIndexpath.row

    有谁知道之间的区别NSIndexpath row and NSIndexpath item 具体来说 我在以下情况中使用哪一个 UITableViewCell tableView UITableView tableView cellForR
  • 如何使用群组在 iPhone 和 Apple Watch 之间共享数据?

    我是 Watchkit 开发新手 无法找到在 iPhone 和 iWatch 之间共享数据的解决方案 请帮助我 我希望使用组来共享数据 我们可以使用组在 iPhone 和 iWatch 之间传递数据 基本上iWatch不能做任何处理 我们需
  • Swift 1.2 可选外部变量?

    由于 Swift 无法访问编译变量 因此我创建了一个指向编译变量的 Objective C extern 变量 编译变量转换器 h extern NSString const NetworkApiBasicAuthUsername 编译变量
  • WKWebView在后台,几个奇怪的断言

    我想找出iOS中当前浏览器的userAgent 所以在 Xcode 创建的默认项目中我添加了 import ViewController h import
  • 使用基于 Cookie 的身份验证的 Capacitor iOS

    我正在使用 Capacitor v3 NextJS 静态导出和 Django 后端基于生产网站构建 iOS 应用程序 当前的后端身份验证方案通过 cookie 使用 Django 会话 并通过 cookie 设置 CSRF 令牌 应用程序可
  • 增量后清除推送通知徽章

    我正在研究 iPhone 中的推送通知 当我收到推送通知时 它在我的应用程序图标上显示 1 下次显示 2 3 4 如果我打开应用程序 它是 0 下次它应该是 1 2 3 4 但它显示最后一个数字和 1 我想在打开应用程序后重置推送通知徽章
  • UIView 周围的虚线边框

    如何在周围添加虚线边框UIView 像这样的东西 如果您喜欢子层 还有另一种方法 在您的自定义视图的 init 中 输入以下内容 border 是 ivar border CAShapeLayer layer border strokeCo
  • 如何在 iOS 应用程序中检测所有可用的 Wifi 网络并连接到其中之一

    在我的 iOS 应用程序中 我想检测所有可用的 wifi 网络 然后从列表中选择一个网络并连接到它 目标是不打开应用程序内置的设置来连接 Wi Fi 而是在我的应用程序中完成这一切 首先 这可能吗 如果可能的话 请指出要使用哪些框架和方法
  • admob ios7错误音频框架

    我正在将 admob SDK 当前的 集成到我的上一个应用程序 IOS7 Xcode5 中 并且出现了一个新错误 在新项目上也是如此 我想我错过了一些东西 但我多次重新启动该过程 但错误仍然存 在 Undefined symbols for
  • 旋转 GPUImageTiltShiftFilter - GPUImage

    我想要一个非水平 GPUImageTiltShiftFilter 旋转 我想将其旋转到任意旋转角度 我还希望过滤器速度快 可以通过带有 UIRotationGestureRecongizer 的 UI 进行旋转 我该怎么做呢 啊 想通了 不
  • 如何在 iOS 6 中强制 UIViewController 为纵向

    As the ShouldAutorotateToInterfaceOrientation在 iOS 6 中已弃用 我用它来强制特定视图仅肖像 在 iOS 6 中执行此操作的正确方法是什么 这仅适用于我的应用程序的一个区域 所有其他视图都可
  • 应用程序仅启用纵向,但 UIImagePickerController 在 iOS6 中旋转

    请注意 下面的答案 不适用于 iOS6 所以我仍然需要答案 我的应用程序仅启用纵向模式 但是 如果我将 UIImagePickerController 作为子视图嵌入其中 并旋转设备 则顶部和底部栏将保持在同一位置 但 UIImagePic
  • 共享扩展程序未出现在能够在 iPhone 上共享照片的应用程序列表中

    我正在尝试创建一个共享应用程序扩展 并按照以下来源的教程进行操作 http www technetexperts com mobile share extension in ios application overview with exa
  • GCD 与自定义队列

    我想知道这两者的性能有什么区别 dispatch async dispatch get global queue DISPATCH QUEUE PRIORITY HIGH 0 perform complex operation dispat
  • iOS 11 特定设置部分的 URL 方案停止工作

    我的应用程序使用 URL 方案将用户直接带到 设置 常规 关于 部分 以下 URL 在 10 3 x 中工作正常 应用程序首选项 根 常规 路径 关于 然而 这个 URL 方案在 iOS 11 GM 版本中不再有效 它仅启动 设置 应用程序

随机推荐

  • 默认情况下,鼠标单击是否会将键盘焦点带到可聚焦控件上?

    这个问题看起来很奇怪 但根据我的经验 我已经习惯了只需用鼠标单击即可将键盘焦点设置到可聚焦元素 但是 UserControl 具有以下属性Focusable true and IsTabStop true让我感到惊讶的是 它通过 Tab 获
  • 如何监控 TensorFlow 估计器训练中的验证损失?

    我想问一个关于如何在 TensorFlow 估计器的训练过程中监控验证损失的问题 我查过类似的问题 估计器训练期间的验证 https stackoverflow com questions 45417502 validation durin
  • 如何在 MATLAB 中执行此累积和?

    我想计算第 2 列中的值的累积和dat txt下面是第 1 列中的每个字符串 所需的输出显示为dat2 txt dat txt dat2 txt 1 20 1 20 20 20 0 1 22 1 22 42 20 22 1 20 1 20
  • 解析树和抽象语法树(AST)有什么区别?

    它们是由编译过程的不同阶段生成的吗 或者它们只是同一事物的不同名称 这是基于表达评估器 http www antlr3 org works help tutorial calculator html泰伦斯 帕尔的语法 本例的语法 gramm
  • 修复了左侧的侧边栏菜单和顶部的固定标题

    所以我想做的是一个固定的侧边栏 顶部有一个固定的菜单 中间的内容可以滚动 body html height 100 margin 0 aside background 90EE90 height 100 left 0 position fi
  • validateRequest="false" 不起作用,即使 requestValidationMode="2.0"

    我有一个在 Visual Studio dev fabric azure 项目 中运行的 ASP NET 网站 并且正在使用 ACS 和 WIF 我的身份验证过程无法正常工作 因为登录后我收到以下信息 A potentially dange
  • Node.js 中的客户端-服务器通信

    我最近开始使用 Node js 来制作一个在线游戏 用于教育 通过阅读各种教程 我想出了如下所示的简单代码 使用我拥有的代码 我能够进行客户端 服务器通信 这基本上是我制作游戏所需的全部内容 只有一个问题 只有客户端可以发起会话 而服务器只
  • 在 gridview 中显示数据库中的数据

    有谁知道如何将数据库条目放入android中的gridview中 或者是否有一个教程解释了如何做到这一点 请通过提供完整的示例来帮助我 您将需要使用游标适配器 http developer android com reference and
  • 当片段更改时如何更新视图?

    我有一个活动 其中有 2 个 sherlockfragment 前两个页面显示带有自定义列表视图的片段 这些视图是使用 AsyncTask 从服务器的 xml 构建的 但是 当应用程序运行时 仅显示一个列表视图 另一页只是空白 public
  • new URL() - WHATWG URL API

    我正在摆弄节点 并试图获取 URL 类的实例 因为这些方便的属性 喜欢 const URL require url http createServer request response gt let uri new URL request
  • 如何生成具有给定限制和平均值的随机数? [复制]

    这个问题在这里已经有答案了 我想生成一系列 30 个随机数 其中上限为 40 下限为 12 平均值为 23 总结 n 30 最小值 12 最大值 40 平均值 23 提前致谢 如果您想要连续分布 您可以获得最小值和最大值之间的任何浮点值 一
  • 如何在 UML 中指定“一次一个”?

    我正在制作一个类图Classroom and a Course class 我怎样才能表明Classroom只能有一个Course一次在其中吗 我知道我可以使用多重性来指定教室可以只开设一门课程 但这并不能完全指定在不同时间可以有除该一门课
  • 列表中情侣的乘积之和

    我想找出列表中情侣的乘积之和 例如给出一个列表 1 2 3 4 我想要得到的是答案 1 2 1 3 1 4 2 3 2 4 3 4 我使用暴力来完成此操作 它会给我带来非常大的列表的超时错误 我想要一种有效的方法来做到这一点 请告诉我 我该
  • setFont(Times-Roman) 不能缺少 T1 文件吗?

    我有错误 Can t find pfb for face Times Roman Error reportlab graphics renderPM RenderPMError Can t setFont Times Roman missi
  • 使用 StreamReader 异步解码 utf-8

    我正在习惯 asyncio 并发现任务处理非常好 但将异步库与传统 io 库混合起来可能很困难 我当前面临的问题是如何正确解码异步 StreamReader 最简单的解决方案是read 字节字符串块 然后解码每个块 请参阅下面的代码 在我的
  • React Native 嵌套 ScrollView 锁定

    我正在尝试将 ScrollViews 嵌套在 React Native 中 带有嵌套垂直滚动条的水平滚动条 这是一个例子 var Test React createClass render function return
  • 使用 urllib2 或任何其他 http 库读取超时

    我有用于读取这样的网址的代码 from urllib2 import Request urlopen req Request url for key val in headers items req add header key val r
  • 如何测试 Stripe 中的订阅续订流程?

    我想测试我的应用程序在订阅付款已完成 或失败 时对来自 stripe 的 webhook 事件的处理 这是我到目前为止所尝试过的 设置新订阅 将用户的信用卡更新为可以添加到帐户但无法实际扣款的信用卡 将试用结束日期更改为一秒内 等待几秒钟
  • 如何使用 Arc 和 Weak 创建循环引用?

    我有两个结构 struct A map HashMap
  • 为什么drawRect:在不调用[superdrawrect:rect]的情况下工作?

    我在我的视图之一中重写了drawRect 即使不调用 superdrawrect rect 它也能工作 这是如何运作的 void drawRect CGRect rect CGContextRef context UIGraphicsGet