let bezIErdisableAdsPath = UIBezIErPath(roundedRect: disableAdsbutton.bounds,byRoundingCorners: [UIRectCorner.topleft,UIRectCorner.Bottomleft],cornerRadii: CGSizeMake(4.0,4.0)) let maskAdsLayer = CAShapeLayer() maskAdsLayer.frame = disableAdsbutton.bounds maskAdsLayer.path = bezIErdisableAdsPath.CGPath disableAdsbutton.layer.mask = maskAdsLayer
比代码工作得很漂亮.
如果我选择.topRight和. Bottomright是这样的:
let bezIErdisableAdsPath = UIBezIErPath(roundedRect: disableAdsbutton.bounds,byRoundingCorners: [UIRectCorner.topRight,UIRectCorner.Bottomright],4.0)) let maskAdsLayer = CAShapeLayer() maskAdsLayer.frame = disableAdsbutton.bounds maskAdsLayer.path = bezIErdisableAdsPath.CGPath disableAdsbutton.layer.mask = maskAdsLayer
比我看不到圆角.这里发生了什么?
我已经尝试将maskAdsLayer添加为子视图,但它不起作用.
解决方法 如果您在vIEwDIDLoad中执行此 *** 作,此时可能尚未应用自动布局约束,因此按钮的框架可能未达到其最终值,因此disableAdsbutton.bounds可能不是您所期望的那样在那时候.因此,向右倒圆的角可能不可见.您可以通过在此代码运行的位置记录按钮的边界来确认这一点,然后在布局视图后再次查看它.你可以通过推迟到vIEwDIDAppear或更好的vIEwDIDLayoutSubvIEws来解决这个问题.
总结以上是内存溢出为你收集整理的ios – UIBezierPath:roundedRect:byRoundingCorners:cornerRadii:行为怪异全部内容,希望文章能够帮你解决ios – UIBezierPath:roundedRect:byRoundingCorners:cornerRadii:行为怪异所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)