ios – 只绘制一个uilabel周围的顶部,右侧和底部边界

我尝试为uilabel添加边框,但我只想要有顶部,右边和底部边框.

喜欢这个

----------------
                          |
            I am a label  |
                          |
           ----------------

我尝试使用这些代码,但添加所有4边

myLabel.layer.borderWidth = 1;
    myLabel.layer.borderColor = [UIColor blackColor];

那么反正我只能加3边,甚至1或2边?

谢谢!

解决方法

你可以使用面具.这是我用来测试理论的代码,它的工作原理很好:
// Define the border width in a variable,we'll be using it elsewhere
CGFloat borderWidth = 1.0;

// This creates a testing view to test the theory,in your case this will be your UILabel
UIView* view = [[UIView alloc] initWithFrame:CGRectMake(20,60,250,100)];
view.layer.borderColor = [UIColor blackColor].CGColor;
view.layer.borderWidth = borderWidth;
[self.view addSubview:view];

// Create the mask to cover the area of the view you want to **show**
// Here,we create a mask that covers most of the view,except the left edge
// The mask needs to be coloured in black,as black acts as transparent,whereas white is opaque in mask parlance
UIView* mask = [[UIView alloc] initWithFrame:CGRectMake(borderWidth,view.frame.size.width - borderWidth,view.frame.size.height)];
mask.backgroundColor = [UIColor blackColor];
view.layer.mask = mask.layer;

您可以调整面具的大小和位置(给出borderWidth)以显示/隐藏您感兴趣的边框边缘.上面的示例隐藏了左边缘.

相关文章

当我们远离最新的 iOS 16 更新版本时,我们听到了困扰 Apple...
欧版/美版 特别说一下,美版选错了 可能会永久丧失4G,不过只...
一般在接外包的时候, 通常第三方需要安装你的app进行测...
前言为了让更多的人永远记住12月13日,各大厂都在这一天将应...