iOS - 根据百分比用多种颜色填充bezierPath

2024-01-27

我在 Objective-C 中画了一个 UIBezierPath 并用红色填充它。现在,我想根据百分比用多种颜色填充路径。例如:我想用 20% 的绿色填充路径,用红色填充剩余的 80%,彼此重叠(不是渐变)。我还想要填充和描边之间有几个像素的间距。

我不知道我怎样才能完成这些事情。有谁知道我如何才能做到这一点或为我指明正确的方向?

提前谢谢了!

UIBezierPath* bezierPath = UIBezierPath.bezierPath;
[bezierPath moveToPoint: CGPointMake(50, 50)];
[bezierPath addLineToPoint: CGPointMake(60, 90)];
[bezierPath addLineToPoint: CGPointMake(80, 90)];
[bezierPath addLineToPoint: CGPointMake(90, 50)];

bezierPath.lineCapStyle = kCGLineCapRound;
bezierPath.lineJoinStyle = kCGLineJoinBevel;

[UIColor.redColor setFill];
[bezierPath fill];
[UIColor.blackColor setStroke];
bezierPath.lineWidth = 4;
[bezierPath stroke];

下面是如何做到这一点,我将路径分为 5 部分,每部分 20%。

 UIBezierPath* bezierPath = UIBezierPath.bezierPath;
[bezierPath moveToPoint: CGPointMake(50, 50)];
[bezierPath addLineToPoint: CGPointMake(60, 90)];
[bezierPath addLineToPoint: CGPointMake(80, 90)];
[bezierPath addLineToPoint: CGPointMake(90, 50)];

bezierPath.lineCapStyle = kCGLineCapRound;
bezierPath.lineJoinStyle = kCGLineJoinBevel;

[UIColor.redColor setFill];
bezierPath.lineWidth = 4;
[bezierPath stroke];
[bezierPath addClip];

CGRect boundingBox = CGPathGetBoundingBox(bezierPath.CGPath);

CGRect firstTwentyPercent = CGRectMake(boundingBox.origin.x,
                                       boundingBox.origin.y + boundingBox.size.height - 0.2 * boundingBox.size.height,
                                       boundingBox.size.width,
                                        0.2 * boundingBox.size.height);
[[UIColor greenColor] setFill];
UIRectFill(firstTwentyPercent);

CGRect secondTwentyPercent = CGRectMake(boundingBox.origin.x,
                                        boundingBox.origin.y + boundingBox.size.height - 0.4 * boundingBox.size.height,
                                        boundingBox.size.width,
                                        0.2 * boundingBox.size.height);
[[UIColor blueColor] setFill];
UIRectFill(secondTwentyPercent);


CGRect thirdTwentyPercent = CGRectMake(boundingBox.origin.x,
                                        boundingBox.origin.y + boundingBox.size.height - 0.6 * boundingBox.size.height,
                                        boundingBox.size.width,
                                        0.2 * boundingBox.size.height);
[[UIColor redColor] setFill];
UIRectFill(thirdTwentyPercent);


CGRect fourthTwentyPercent = CGRectMake(boundingBox.origin.x,
                                       boundingBox.origin.y + boundingBox.size.height - 0.8 * boundingBox.size.height,
                                       boundingBox.size.width,
                                       0.2 * boundingBox.size.height);
[[UIColor cyanColor] setFill];
UIRectFill(fourthTwentyPercent);

CGRect fifthTwentyPercent = CGRectMake(boundingBox.origin.x,
                                        boundingBox.origin.y,
                                        boundingBox.size.width,
                                        0.2 * boundingBox.size.height);
[[UIColor orangeColor] setFill];
UIRectFill(fifthTwentyPercent);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

iOS - 根据百分比用多种颜色填充bezierPath 的相关文章

  • 隐藏故事板中的导航栏

    谁能告诉我如何隐藏故事板中的导航栏 我下面的代码在模拟器中运行时工作正常 但它仍然出现在我的故事板中 这真的很烦我 因为它弄乱了我的图像的位置 有人可以帮忙吗 void viewWillAppear BOOL animated super
  • 符号化 iPad 崩溃日志后回溯仍然不可读

    我有这些崩溃日志 在我将它们放入管理器中后 会自动进行符号化 但结果始终相同 iOS 调用得到符号化 而我的应用程序调用则没有 我尝试将 Dym 和应用程序文件复制到同一文件夹中 删除并再次复制回来 没有任何帮助 知道发生了什么事吗 所以我
  • 适用于 iOS 的 MvvmCross 汉堡菜单

    我在用着https www marcbruins nl xamarin ios hamburger menu mvvmcross https www marcbruins nl xamarin ios hamburger menu mvvm
  • 获取在 iOS UIFont 中追踪字符的路径

    假设我在 iOS 应用程序中使用了自定义字体 Foo 我已将其添加到我的项目 plist 等中 并且我能够渲染UILabels之类的就很好了 现在 如果我想找出可以 追踪 该字体中的字母 P 的点序列 我将如何获得该点序列 例如 假设我想使
  • iOS 低内存崩溃,但内存使用率非常低

    这已经困扰我很长时间了 我的应用程序运行占用大约 2 74MB 内存 没关系 但当它创建 UIWebView 时 它会增加到大约 5 87MB 并继续崩溃 这些是在我的第一代 iPad 上运行时仪器中的实时字节下给出的值 我找不到崩溃日志
  • 将 MPMoviePlayerController 的视图添加到 UIView

    我想添加MPMoviePlayerController to a UIView 首先 我在 xib 文件中放置了一个视图 名为 youTubeView youtube播放器是MPMoviePlayerController youtubePl
  • iOS后台获取时间限制崩溃

    我已经设置了背景获取 使用大纲NSScreencast 第 92 集 http nsscreencast com episodes 92 background fetch BOOL application UIApplication app
  • Flutter-iOS 当应用程序更新/重新编译时存储的图像丢失

    嗨 请原谅我的英语 也是 flutter iOS 的新手 我在 iOS 上有一个关于 flutter 的应用程序 用户可以从他们的相机和图库中拍摄照片和视频 我正在使用 image picker 包 这没有问题 然后我将其保存在在其应用程序
  • Swift:如何让游戏中的角色只有落地后才能跳跃?

    我正在开发一款游戏 我的角色可以从一个陆地跳到另一个陆地 我已经把所有事情都做好了 除了我剩下的问题是 如果你继续点击屏幕 他可以永远跳跃 我希望他必须先落地才能再次跳跃 import SpriteKit import GameplayKi
  • 如何本地化 iOS 故事板

    我有一个包含一些视图的 iPhone 故事板 例如 导航项标题名为News 应翻译为其他语言 当我向故事板添加新的本地化版本时 它会为新语言创建当前故事板的副本 在这里我可以更改导航项的标题 但对我来说它似乎不太有用 如果我的故事板包含 1
  • iOS 上关键 ClientState 警告的默认访问速度缓慢

    在测试我的 iOS 应用程序时 我收到 对关键 ClientState 的默认访问速度慢 耗时 0 034635 秒 容差为 0 020000 警告 它似乎是间歇性发生的 我试图环顾四周看看它是关于什么的 但我并不完全确定 任何帮助表示赞赏
  • iPhone 的翻译器?

    我对为 iPhone 制作一个解释器很感兴趣 这将是一个实验性的想法 但可能会很棒 我喜欢让我自 己的语言适合移动计算和数学的想法 我查阅了很多资料 发现有关 iPhone 上的口译员的信息很复杂 苹果会允许什么 我见过这个应用程序 这是一
  • 在 Xcode 中查找未使用的文件

    我最近开始开发一个新应用程序 它基本上是我以前制作的应用程序的副本 但做了一些更改 为了制作这个新应用程序 我复制了旧应用程序并删除了一些不需要的内容 我想知道 有没有办法知道 Xcode 中正在使用哪些类文件 或者有什么关于如何查找未使用
  • Apple 由于崩溃而拒绝了我的应用程序,无法重现它

    我刚刚上传了一个应用程序到应用程序商店 它是为ios 7开发的 他们拒绝了该应用程序 因为我无法重现崩溃 他们向我发送了这份崩溃报告 Exception Type EXC BAD ACCESS SIGSEGV Exception Subty
  • 从字典创建 Swift 对象

    如何根据 Swift 字典中的查找值动态实例化类型 希望这对其他人有用 我们需要进行一些研究才能弄清楚这一点 目标是避免巨大的 if 或 switch 语句从值创建每个对象类型的反模式 class NamedItem CustomStrin
  • iOS 7 NS 单线程安全合并冲突

    重新排序两行后 在单线程应用程序上保存简单的数据时遇到问题 我已经成功地简化了编码以重现错误 并且希望其他人尝试这一点时得到第二个意见 这是一次健全性检查 因为我怀疑 iOS 7 引入的核心数据问题 而这在 iOS 6 中工作正常 首先 启
  • “无法取消归档名为 UITableViewController 的元素”

    我一直在按照 构建你的第二个 iOS 应用程序 教程一步步进行 在教程承诺所有错误都会消失之后 我遇到了这个错误 但直到其他错误都出现后 该错误才出现 全部更正 我尝试编译它 错误 The document MainStoryboard i
  • 如何将nsmutable数组添加到sqlite数据库表中

    如何将nsmutablearray添加到sqlite数据库表中 有人可以帮我编码吗 您可以使用 for int i 0 i lt mutArray count i NSString string mutArray objectAtIndex
  • 将 NSFetchedResultsController 添加到项目后出现问题

    我设置 CoreData 时没有NSFetchedResultsController一切都保存得很好 切换到之后NSFetchedResultsController 我在尝试保存图像时遇到奇怪的错误 这是我用来保存图像的代码 void sa
  • iOS:如何创建核心数据库的备份副本?以及如何导出/导入该副本?

    我想为我的应用程序的用户提供创建核心数据数据库备份的可能性 特别是在他切换到新设备等情况下 我该怎么做呢 特别是如何重新导入该文件 我的意思是 假设他制作了数据库的备份副本 然后更改了大量内容并想要重置为以前保存的备份副本 我该怎么做呢 T

随机推荐

  • 如何使用cascade =“all,delete-orphan”制作hibernate集合的副本

    我正在尝试复制一个休眠实体 A 如下所示 A a A session get A class id session evict a a setId null session save a 然而这不起作用 我得到以下异常 org hibern
  • 条件表连接

    我的雄辩模型中有以下范围 我想为其添加两个条件 我需要帮助才能做到这一点 public function scopeImages query query gt join images as i function join join gt o
  • 关于测试驱动开发的哲学问题

    我一直对测试驱动开发很感兴趣 但当我在实际项目中尝试时 我永远无法坚持下去 当我尝试时 我不断出现几个哲学问题 你如何应对巨大的变化 当涉及到测试单一功能 一些参数 结果值 少量 副作用 时 TDD 是理所当然的 但是 当您需要彻底检修大型
  • 查找图像中的图像

    我正在寻找检测另一图像中的图像的最佳方法 我有一个小图像 想找到它在较大图像中出现的位置 这实际上是屏幕截图 从概念上讲 它就像 沃尔多在哪里 在更大的图像中进行搜索 有没有有效 快速的方法来实现这一点 速度比记忆更重要 Edit 内部 图
  • 如何使用 VideoWriter 从 OpenCV 打开 GStreamer 管道

    我正在使用 OpenCV VideoCapture 捕获视频帧 捕获工作正常 因为我可以使用这样的框架 cv VideoCapture cap v4l2src device dev video1 videoscale videorate v
  • Android 不显示 logcat 消息

    它仅显示我的应用程序的错误消息 这是 Navon 铂金 10 我尝试使用 adb 设置日志级别的 setprop 但没有运气 UPDATE 安卓工作室 最新 没有过滤器 adb 和 Logcat 识别的设备 仅显示错误消息 安卓 6 0 纳
  • 预取后从缓存中选取图像

    我正在使用 Kingfisher 框架来预取图像 Kingfisher框架的链接是 https github com onevcat Kingfisher https github com onevcat Kingfisher 这是我编写的
  • 无法通过 sudo 使用 RVM 安装的 Ruby

    我已成功配置 RVM 以使用 Ruby 1 9 2 一切都很好 但是当我尝试使用以下命令运行 Ruby 时sudo它说找不到 RVM 或 Ruby ruby v ruby 1 9 2p0 2010 08 18 revision 29036
  • 有哪些很棒的在线数据库建模工具? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • request.POST 包含 django 中的查询字符串时的示例

    当 request POST 包含 django 中的查询字符串时 请发布示例代码 因为我认为我的 django 版本有问题 EDIT 你不能 查询字符串总是在 GET 中 这是我的问题 如果您的请求是邮寄的 request method
  • 错误:转换为非标量类型

    我正在为一项作业创建一组派生类 我被指示使用字符数组 C 字符串 当我编译时 我不断收到错误 Homework11 cpp In function int main Homework11 cpp 72 error conversion fr
  • 在 Whatsapp 云 API 的模板标头中添加示例图像

    我正在使用 WhatsApp 云 API 做一个项目 我需要创建一个带有媒体标题的模板 我创建了一个带有媒体标题但没有示例图像的模板 但它被拒绝了 所以我想在 Node js 中创建一个带有示例图像的模板 带有媒体标题的模板 为模板添加示例
  • Rcpp:如何确保 NumericMatrix 的深度复制?

    假设我有一个 Rcpp NumericMatrix A 我想将 A 的相同副本 不是指针副本 复制到另一个 Rcpp NumericMatrix B 中 这是完成这项工作的正确方法吗 Rcpp NumericMatrix B Rcpp cl
  • 架构注册表中的向后兼容性问题和不确定性

    我有一个用例 我有一个 JSON 我想生成架构并从 JSON 中记录并发布记录 我已经配置了值序列化器 并且架构设置是向后兼容的 第一个 JSON 字符串 json n id 1 n name Headphones n price 1250
  • virtualenv:无法访问 lib:没有这样的 virtualenv 或站点目录

    我正在使用 Google Cloud Platform 创建一个基于 Django 的 http API 它使用 Google 的云 SQL API 和机器学习 API 我在我的电脑上制作了一个 django mysql 应用程序 并且能够
  • 复选框可以替代验证码吗?

    复选框是否提供了在网站上使用验证码的替代方法 我想我需要使用验证码进行用户注册 相反 如果我为 通过单击此处我同意 之类的条款添加一个复选框 可以解决机器人问题吗 或者除了复选框之外还需要验证码吗 您可以使用复选框做的一件事是制作honey
  • 范围(len(列表))或枚举(列表)? [复制]

    这个问题在这里已经有答案了 其中哪一个会被认为更好 更清晰 更快 更 Pythonic 我不关心列表的内容L 到底有多长 a f n for n in enumerate L or a f n for n in range len L 如果
  • 无法在不和谐中向 Cog 添加命令,py

    我试图使用 cogs 在 python 中制作一个简单的机器人 但是每当我运行我的代码时 当命令明确存在时 它会说找不到命令 我已经尝试了一切 但找不到任何解决方案 任何帮助深表感谢 所以我有2个文件 一个包含齿轮和设置功能 另一个包含机器
  • RTE 显示我自己的 CSS 类作为选择的正确配置是什么?

    RTE 的配置随每个 大 版本而变化 现在我已经安装了第一个 7 6 我需要配置 RTE 以便编辑者可以为段落 跨度或表格设置特殊的类 例如编辑器应该能够选择表格 bootstrap 的默认样式 table striped table bo
  • iOS - 根据百分比用多种颜色填充bezierPath

    我在 Objective C 中画了一个 UIBezierPath 并用红色填充它 现在 我想根据百分比用多种颜色填充路径 例如 我想用 20 的绿色填充路径 用红色填充剩余的 80 彼此重叠 不是渐变 我还想要填充和描边之间有几个像素的间