– [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:]?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)