如何从UIView的某些部分删除边框?
我有一个包含其他子视图的UIView
。 我正在将边框应用于此UIView
,并将边框应用于整个UIView
。 为了那看见第一个图象。
但是不要在标题所在的"Leaderboard"
的边框周围。 我怎样才能删除该部分的边界只。 看到下面的图片,看看在标题排行榜周围没有边框。
不, CALayer
边界不支持这种行为。
但是如果你需要实现这个方法,你可以尝试一种替代方法,在你的主视图的每一边,尝试添加一个具有所需边框颜色作为背景色的n点宽的不透明子视图。
添加此代码:
CGSize mainViewSize = theView.bounds.size; CGFloat borderWidth = 2; UIColor *borderColor = [UIColor redColor]; CGFloat heightfromTop = 25; UIView *leftView = [[UIView alloc] initWithFrame:CGRectMake(0, heightfromTop borderWidth, mainViewSize.height-heightfromTop)]; UIView *rightView = [[UIView alloc] initWithFrame:CGRectMake(mainViewSize.width - borderWidth, heightfromTop, borderWidth, mainViewSize.height-heightfromTop)]; leftView.opaque = YES; rightView.opaque = YES; leftView.backgroundColor = borderColor; rightView.backgroundColor = borderColor; [mainView addSubview:leftView]; [mainView addSubview:rightView];
这样只会给两边添加边界。重复顶部和底部的相同想法。
NB : heightfromTop
是你不希望边框视图出现的顶部部分的高度,你可以根据你的需要改变它
您可以UIView
并实现drawRect
如下所示:
- (void)drawRect:(CGRect)rect { float borderSize = 3.0f; //draw the bottom border CGContextSetFillColorWithColor(context, [UIColor blueColor].CGColor); CGContextFillRect(context, CGRectMake(0.0f, self.frame.size.height - borderSize, self.frame.size.width, borderSize)); //draw the right border CGContextSetFillColorWithColor(context, [UIColor blueColor].CGColor); CGContextFillRect(context, CGRectMake(0.0f,0.0f, borderSize,self.frame.size.height)); //draw the left border CGContextSetFillColorWithColor(context, [UIColor blueColor].CGColor); CGContextFillRect(context, CGRectMake(self.frame.size.width - borderSize,0.0f, borderSize,self.frame.size.height)); }
现在,您需要使用子类UIView
创build所需的视图。
- CAReplicatorLayer背后的魔法是什么?
- animation期间无法获取CALayer的当前位置
- 在向后播放CABasicAnimation后,CALayer消失
- 在iOS上,为什么设置一个图层的sublayerTransform将自己变成像CATranformLayer一样?
- 如何在CALayer.contents中添加Stretchable UIImage?
- 屏蔽除UIView之外的所有视图
- 在已过滤的图像之间滑动
- iOS的UIButton与白色背景上的透明标题
- setNeedsDisplay,drawRect或CALayer导致dispatch_continuation_alloc_from_heap malloc内存泄漏iOS