无法更改视图中绘制的圆圈的颜色

2024-04-16

我正在尝试更新我在子类中创建的圆圈的颜色UIView通过在类中创建一个方法来更新颜色,如下所示,但颜色不会改变。

import UIKit

class badge: UIView {

    struct mine {
        static var p = UIBezierPath(ovalInRect: CGRectMake(0,0,100,100))

}

override func drawRect(rect: CGRect) {
    // Drawing code


    UIColor.blueColor().setFill()
    mine.p.fill()        

}


func colour(whatColour: String) {

    UIColor.redColor().setFill()
    mine.p.fill()
    self.setNeedsDisplay()

}
}

// The above is referenced in view controller with

@IBOutlet weak var myBadge: badge!

// change function colour is called with 

myBadge.colour()

// but the colour of the circle does not change (its still filled in blue)
}

我究竟做错了什么?


更新:Swift 3(和 Swift 4)语法:

setNeedsDisplay causes draw再次运行,它将填充颜色设置回蓝色。尝试将属性添加到您的Badge视图来存储desiredColour:

class Badge: UIView {

    var desiredColour: UIColor = .blue

    struct mine {
        static var p = UIBezierPath(ovalIn: CGRect(x: 0, y: 0, width: 100, height: 100))
    }

    override func draw(_ rect: CGRect) {
        // Drawing code

        desiredColour.setFill()
        mine.p.fill()
    }

    func colour() {
        desiredColour = .red
        self.setNeedsDisplay()
    }
}

如果你添加didSet to desiredColour,你可以让它调用setNeedsDisplay为你,然后你甚至不需要colour功能。所以要使用它,你只需调用myBadge.desiredColour = .red并且视图将重绘!

class Badge: UIView {

    var desiredColour: UIColor = .blue {
        didSet {
            self.setNeedsDisplay()
        }
    }

    struct mine {
        static var p = UIBezierPath(ovalIn: CGRect(x: 0, y: 0, width: 100, height: 100))
    }

    override func draw(_ rect: CGRect) {
        // Drawing code

        desiredColour.setFill()
        mine.p.fill()
    }
}

它在 Swift Playground 中运行:

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

无法更改视图中绘制的圆圈的颜色 的相关文章

  • 进入后台时 Alamofire 请求卡住?

    我正在使用 Alamofire 调用 Web 服务 该服务需要相当长的时间才能加载 如果应用程序进入后台 当我返回应用程序时 我会被加载程序卡住 我想这是因为调用永远不会向我的完成处理程序返回任何内容 我该如何解决这个问题 您可以使用后台抓
  • 选择 UITableViewCell 时 UIView 背景颜色消失

    我在界面生成器中构建了一个简单的 tableViewCell 它包含一个包含图像的 UIView 现在 当我选择单元格时 会显示默认的蓝色选择背景 但 UIView 的背景颜色消失了 我的 UITableViewCell 的实现文件没有做任
  • 如何在应用程序项目中使用 Cocoa Touch 框架

    我熟悉构建单个 iOS 应用程序 但我坚持使用 Cocoa Touch 框架向多个应用程序共享通用代码 问题 框架的头文件不可见 无法链接到消费应用程序项目 我做了什么 1 我创建了一个名为 libTestFramework 的项目 Coc
  • 如何组合两个 SwiftyJSON 对象

    我有一个 swiftyJSON 对象 例如 location http img http commentCount 0 timestamp 1432460217550 我希望能够向其附加另一个 swiftyJSON 对象 使其看起来像 lo
  • 保存来自 TrueDepth 相机的深度图像

    我正在尝试保存 iPhone X TrueDepth 相机的深度图像 使用AVCam照片滤镜 https developer apple com library content samplecode AVCamPhotoFilter Lis
  • 如何为图层阴影不透明度设置动画?

    我有一个视图 我已将 LayerOpacity 设置为 1 theView layer shadowOpacity 1 0 当视图位于屏幕下方时 这看起来很好 当我将此视图向上移动以与另一个有阴影的视图齐平时 它们看起来不太好 有没有办法让
  • 与新 Apple Music 应用程序中相同的动态状态栏

    是否可以动态着色statusBar这是在新的苹果音乐应用程序 Edit iOS 8 4 中的新 Apple Music 应用程序具有此功能 打开应用程序 选择并播放歌曲 状态栏为白色 向下滑动播放器控制器以查看 我的音乐 控制器 它有黑色状
  • 二元运算符“/”不能应用于两个(Int)操作数[重复]

    这个问题在这里已经有答案了 我得到了Binary operator cannot be applied to two Int operands当我将以下代码放入 Xcode 中的 Swift Playground 时出错 func sumO
  • 针对 iOS 10.3 进行编译,但模块“SwiftUICharts”的最低部署目标为 iOS 13.0

    知道如何仅在 iOS 版本超过 iOS 13 时导入 SwiftUICharts 框架吗 我通过 文件 gt Swift 包 gt 添加包依赖项 添加了此框架 我的应用程序目标必须是 iOS 10 我将此框架导入到 swiftui 控制器中
  • 在 JavaScript 中检测页面是否加载到 WKWebView 中

    如何使用 javascript 可靠地检测到页面已加载到 WKWebView 中 我希望能够检测到这些场景 iOS 和 WKWebView iOS 和 Safari not iOS 关于 UIWebView 有一个类似的问题here htt
  • 带约束的嵌套集合视图的意外行为 (Swift 4)

    我的表格视图中有一个单元格 其中包含水平分页集合视图 该集合视图的每个页面内都有一个垂直集合视图 为了避免 滚动滚动 问题 我在垂直集合视图中禁用了垂直滚动 垂直集合视图的单元格计数不是静态的 可以是任意数字 因此 这会产生一个问题 集合视
  • iOS 如何触发视频退出全屏后继续播放?

    我正在构建一个在 iOS 中播放视频的网站 我有一个在 iOS 中工作的全屏按钮 但是退出全屏时视频会暂停 有谁知道一种方法可以强制视频在退出全屏时继续播放 或者如何设置一个侦听器来触发视频在退出全屏时自动播放 这是我的代码
  • TTTAttributedLabel 可点击截断标记

    我有一个 TTTAttributedLabel 并为其指定了一个自定义属性截断标记 NSAttributedString atributedTruncationToken NSAttributedString alloc initWithS
  • 使用 BGTaskScheduler 进行后台获取与调试模拟完美配合,但在实践中却不起作用

    我在 appDelegate 的 didFinishLaunchingWithOptions 中注册后台获取任务 BGTaskScheduler shared register forTaskWithIdentifier Backgroun
  • Swift:协议、结构、类

    我开始学习 Swift 语言 但在理解协议 结构和类方面遇到了困难 我来自 Android 方面的编程 所以我相信 Swift 协议基本上是 Java 接口 其中每一个的正确用例是什么 这些类比并不 完全 正确 但这就是我所理解的要点 是的
  • 循环多个 UIAlertController

    在某些情况下 我的应用程序需要显示多个警报消息 错误消息在启动时收集 并且需要一次向用户显示一条 当第一个被确认后 应该呈现下一个 问题在于 显然 它们都试图同时执行 有没有一种聪明的方法可以同步执行此操作 这是一些简单描述我想要做的事情的
  • 在 Swift 中以编程方式为 iOS 制作带有名字首字母的图像,例如 Gmail

    我需要在 UITableView 中显示与其姓名相对应的每个用户的个人资料图片 在下载图像之前 我需要显示一张带有他名字的第一个字母的图像 就像在 GMail 应用程序中一样 如何在 Swift for iOS 中以编程方式执行此操作 不需
  • UILabel 中的文本未垂直居中

    我使用以下代码创建了一个标签 func setupValueLabel valueLabel numberOfLines 1 valueLabel font UIFont name Avenir Black size 50 valueLab
  • cameraOverlayView 防止使用 allowedEditing 进行编辑

    在我的应用程序中 使用以下行在拍摄照片后对其进行编辑 移动和缩放 效果很好 imagePicker setAllowsEditing YES 但如果我还使用cameraOverlayView 则编辑模式将不再起作用 屏幕出现 但平移和捏合手
  • 如何观察UserDefaults的变化?

    我有一个 ObservedObject在我看来 struct HomeView View ObservedObject var station Station var body some View Text self station sta

随机推荐

  • MutationRecord.addedNodes 节点列表中返回的节点数(mutationObserver)

    MutationRecord addedNodes 返回 NodeList 其中检测到在我的文档中添加了节点 当我使用 obj appendChild 方法时 mutationObserver 会检测到它并将 MutationRecord
  • Android GCM:了解 XMPP

    我正在尝试使用应用程序在我的 GCM 中实现 XMPP 协议 但即使经过广泛搜索 我也不理解其背后的概念 另外 也许我并不真的需要 XMPP 来完成我想用我的应用程序做的事情 但我喜欢学习东西 让我们以 HTTP 为例 我的应用程序将 he
  • 如何使用 Android xml 形状在圆内画圆?

    我正在尝试为我的应用程序制作一个搜索栏的拇指 并且我希望有一个内圆被另一个更大 半透明 的外圆包围 我正在尝试使用layer list 但我遇到了问题 下面是我的代码
  • Java 自动类型提升

    我引用 Herbert Schildt 的话 JAVA 完整参考第 8 版 第4章 操作员 当您转移时 Java 自动类型提升会产生意想不到的结果byte and short价值观 如你所知 byte and short价值观被提升为int
  • 使用 NumPy 索引数组对 Python 列表进行切片——有什么快速方法吗?

    我有一个常规的list called a 以及一个 NumPy 索引数组b 不 我不可能转换a到 NumPy 数组 有什么方法可以达到与 相同的效果 a b 有效 需要明确的是 这意味着我不想提取每个人int in b由于其性能影响 是的
  • 如何重置测试之间导入的模块

    假设我有一个模块需要在应用程序启动时初始化一次 以传递配置 模块看起来像这样 MyModule js let isInitiazlied const myModule init function isInitiazlied true do
  • 张量流学习中的多元回归输出节点

    我对张量流比较陌生 想使用 tf contrib learn 中的 DNNRegressor 来执行回归任务 但我不想有一个输出节点 而是想要多个 例如十个 如何配置回归器来调整许多输出节点以满足我的需求 我的问题与以下已在 SO 上提出的
  • 如何查看亚马逊 lambda 函数的 console.log 输出

    当你做一个 console log Loading function 在亚马逊 lambda 函数中 它去哪里了 我的设置 API网关 lambda函数nodejs6 10 卷曲https n2tredacted execute api u
  • android跨度点击事件

    好的 这些都是我的问题 我需要使用正则表达式来过滤掉除字母之外的所有内容 然后我需要将找到的单词包含在 word 标签中 有了这个 str str replaceAll pattern 0 现在我正在过滤所有正确的元素 标点符号 数字等 但
  • 催化剂控制器问题

    我刚刚在我的第一个大型项目中使用了催化剂 我想知道我是否按照预期的方式使用了催化剂 我有 Root pm 在该文件中我放置了多个 url 处理程序 每个 url 有一个控制器是最佳实践还是应该考虑分组 Catalyst 的优点之一是它的灵活
  • Rails,将文件上传到服务器时获取文件名

    我在 Rails 3 中使用 AJAX 上传器以及 paper clip 并在此处上传文件 def upload photo Photo create photo gt params file title gt params filenam
  • 有哪些 CSS 属性可以让元素脱离正常流程?

    有哪些 CSS 属性可以让元素脱离正常流程 这些属性可以是 float position absolute 等 这个问题涉及正常流程的所有可能的改变 只有以下属性会影响任何给定元素的正常流程 float right left positio
  • 在共享主机上安装 PHP 扩展

    我需要启用mcrypt https www php net manual en book mcrypt php我的网站上的功能 除了我在共享主机上 运行 Linux 并且显然无权访问php ini文件 似乎确实有安装 PEAR 模块的选项
  • 在 R 中从 MySQL 获取 UTF-8 文本返回“???”

    我一直在尝试从 R 获取 MySQL 数据库中的 UTF 8 文本 我在 OS X 上运行 R 通过 GUI 和命令行都尝试过 其中默认区域设置是 en US UTF 8 并且没有无论我尝试什么 查询结果都显示 对于所有非 ASCII 字符
  • Plotly 中子图的标题

    我正在尝试在 Plotly 中制作 3x3 子图的网格 我正在尝试为每个子图获取标题并在顶部获取主标题 但我似乎无法让它发挥作用 我看到这个很棒的网站 http takwatanabe me data science plotly layo
  • Python multiprocessing.Pool在MacOS和Linux系统上的不同性能

    我是 Python 初学者 我在项目中使用了 multiprocessing Pool 来提高性能 这是我使用 multiprocessing Pool 的代码片段 我在驻留服务器的开头构建池 并在每次服务器收到请求时使用 Pool app
  • 不定长度的数组[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 如何在未知长度的排序数组中找到随机元
  • MFC:如何在一个函数中捕获对话框每个控件的设置焦点

    我有 n 个对话框 它们具有相同的基本对话框 每个对话框都有自己的控件 编辑框 组合框 列表控件 etc 在基本对话框中 如何设置每个控件的焦点消息 例如 给出一个消息框 text Hello I got focus my ID is d
  • XAMPP:无法启动 Apache (Windows 10)

    我正在使用 XAMPP 并且可以启动 Apache 但是 MySQL php我的管理员 https en wikipedia org wiki PhpMyAdmin start 当我开始时 我收到此错误 10 07 49 Apache Er
  • 无法更改视图中绘制的圆圈的颜色

    我正在尝试更新我在子类中创建的圆圈的颜色UIView通过在类中创建一个方法来更新颜色 如下所示 但颜色不会改变 import UIKit class badge UIView struct mine static var p UIBezie