如何从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]; 

这样只会给两边添加边界。重复顶部和底部的相同想法。

NBheightfromTop是你不希望边框视图出现的顶部部分的高度,你可以根据你的需要改变它

您可以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所需的视图。