+ (voID)setRoundedCornersByVIEw:(UIVIEw*) givenVIEw roundAngle:(int)roundAngle borderWIDth:(double)borderWIDth bordercolor:(UIcolor*)bordercolor Alphaborder:(double)Alphaborder { givenVIEw.layer.cornerRadius = roundAngle; givenVIEw.layer.bordercolor = [[bordercolor colorWithAlphaComponent:Alphaborder] CGcolor]; givenVIEw.layer.borderWIDth = borderWIDth; givenVIEw.layer.masksToBounds = YES;}
但是现在我在圆线周围有一个细边框,它是一条细线,颜色像圆形视图的背景颜色
如何在不使用onDraw的情况下删除它,因为它不可能 – 因为它意味着我必须覆盖所有需要圆角的iOS控件.
你尝试使用
UIBezIErPath *maskPath = [UIBezIErPath bezIErPathWithRoundedRect:bound byRoundingCorners:corners cornerRadii:cornerRadii];CAShapeLayer *maskLayer = [[CAShapeLayer alloc] init];maskLayer.frame = givenVIEw.bounds;maskLayer.path = maskPath.CGPath;givenVIEw.layer.mask = maskLayer;
但是,正如你所看到的,它并没有完全圆润
解决方法 显然,在角点绘制剪辑后,图层边界不足以覆盖整个图像.因此,您可以稍微扩大图层的边界以覆盖视图的图像.像这样:+ (voID)setRoundedCornersByVIEw:(UIVIEw *)givenVIEw roundAngle:(int)roundAngle borderWIDth:(double)borderWIDth bordercolor:(UIcolor *)bordercolor Alphaborder:(double)Alphaborder{ CGfloat offset = 1.f; // .5f is also good enough givenVIEw.layer.cornerRadius = roundAngle + offset; givenVIEw.layer.bordercolor = [[bordercolor colorWithAlphaComponent:Alphaborder] CGcolor]; givenVIEw.layer.borderWIDth = borderWIDth + offset; givenVIEw.layer.masksToBounds = YES; [givenVIEw.layer setBounds:CGRectMake(-offset,-offset,CGRectGetWIDth(givenVIEw.frame) + offset * 2.f,CGRectGetHeight(givenVIEw.frame) + offset * 2.f)];}总结
以上是内存溢出为你收集整理的iOS如何删除细边框线然后使用layer.cornerRadius全部内容,希望文章能够帮你解决iOS如何删除细边框线然后使用layer.cornerRadius所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)