ios – 为什么CGSize类型的cornerRadii参数在 – [UIBezierPath bezierPathWithRoundedRect:byRoundingCorners:cornerRadii:]?

ios – 为什么CGSize类型的cornerRadii参数在 – [UIBezierPath bezierPathWithRoundedRect:byRoundingCorners:cornerRadii:]?,第1张

概述我无法理解这一点…我正在玩 – [UIBezierPath bezierPathWithRoundedRect:byRoundingCorners:cornerRadii:]: bezierPath = [UIBezierPath bezierPathWithRoundedRect:CGRectMake(10, 10, 80, 80) 我无法理解这一点…我正在玩

– [UIBezIErPath bezIErPathWithRoundedRect:byRoundingCorners:cornerRadii:]:

bezIErPath = [UIBezIErPath bezIErPathWithRoundedRect:CGRectMake(10,10,80,80)                                   byRoundingCorners:(UIRectCornerBottomleft)                                         cornerRadii:CGSizeMake(20,20)];

它的工作原理如预期.但是如果我替换cornerRadii:CGSizeMake(20,20)with,say,cornerRadii:CGSizeMake(20,5)或CGSizeMake(20,40),没有区别.

为什么是cornerRadii CGSize而不是CGfloat呢?什么是CGSize.height?

任何想法和建议将非常感谢:)

解决方法 我现在可以确认这是iOS 6之后引入的一个BUG.我有一个旧的4s运行iOS 6.1.在那台机器上,这段代码:
path = [UIBezIErPath bezIErPathWithRoundedRect: bounds    byRoundingCorners: UIRectCornertopleft | UIRectCornertopRight   cornerRadii: CGSizeMake(bounds.size.wIDth/2,bounds.size.wIDth/6) ];

创建一个椭圆形角的圆角矩形.曲线的上半部分曲线更加平缓,并且像您所期望的那样更加尖锐:

这是iOS 6.1的图像,其角落应该是:

而从iOS 8.1.2运行时,这是相同的代码.

看起来在iOS> = 7.0,它忽略了指定半径的高度,并使用角度椭圆的高度和宽度的宽度值,这迫使它们始终是四分之一圆.

我已经记录了苹果BUG记者系统的错误.我们会看看他们说什么我建议所有看到这个问题的人也报告一个BUG.他们得到的报道越多,它们就越有可能修复它.

总结

以上是内存溢出为你收集整理的ios – 为什么CGSize类型的cornerRadii参数在 – [UIBezierPath bezierPathWithRoundedRect:byRoundingCorners:cornerRadii:]?全部内容,希望文章能够帮你解决ios – 为什么CGSize类型的cornerRadii参数在 – [UIBezierPath bezierPathWithRoundedRect:byRoundingCorners:cornerRadii:]?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1111840.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-29
下一篇 2022-05-29

发表评论

登录后才能评论

评论列表(0条)

保存