6

我可以知道如何UILable仅使用阴影添加底部边框吗?没有上、左、右边框。

这是行不通的。这是我尝试过的代码,但它不起作用。

CALayer* layer = [titleLabel layer];
layer.frame = CGRectMake(-1, -1, titleLabel.frame.size.width, 1.0f);
layer.borderWidth=1;
[layer setBorderWidth:2.0f];
[layer setBorderColor:[UIColor blackColor].CGColor];
[layer setShadowOffset:CGSizeMake(-3.0, 3.0)];
[layer setShadowRadius:5.0];
[layer setShadowOpacity:5.0];
4

2 回答 2

24

以这种方式测试:

UILabel *lbl = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 200, 50)];

[lbl setText:@"Testo di prova..."];
[lbl setBackgroundColor:[UIColor clearColor]];
[[self view] addSubview:lbl];
[lbl sizeToFit];

CALayer* layer = [lbl layer];

CALayer *bottomBorder = [CALayer layer];
bottomBorder.borderColor = [UIColor darkGrayColor].CGColor;
bottomBorder.borderWidth = 1;
bottomBorder.frame = CGRectMake(-1, layer.frame.size.height-1, layer.frame.size.width, 1);
[bottomBorder setBorderColor:[UIColor blackColor].CGColor];
[layer addSublayer:bottomBorder];

我希望这可以帮助你

于 2012-09-08T08:51:20.010 回答
1

只是发布这个答案作为参考,因为用户已经得到了答案,在 Swift 中尝试这个代码,让我知道它是怎么回事..

func buttomBorder(label: UILabel) -> UILabel {
    // For Buttom Border
    let frame = label.frame
    let bottomLayer = CALayer()
    bottomLayer.frame = CGRect(x: 0, y: frame.height - 1, width: frame.width - 2, height: 1)
    bottomLayer.backgroundColor = UIColor.lightGray.cgColor
    label.layer.addSublayer(bottomLayer)
    //For Shadow
    label.layer.shadowColor = UIColor(red: 0, green: 0, blue: 0, alpha: 0.25).CGColor
    label.layer.shadowOffset = CGSizeMake(0.0, 2.0)
    label.layer.shadowOpacity = 1.0
    label.layer.shadowRadius = 0.0
    label.layer.masksToBounds = false
    label.layer.cornerRadius = 4.0

    return label

}

函数调用:

 labelName = buttomBoder(label: labelName)
于 2018-03-15T10:56:01.840 回答