简体   繁体   中英

iOS add bottom border to UILabel with shadow

May i know how do i add bottom border to UILable only with shadow? No top, left, right border.

this is not working. Here is the code I've tried but it's not working.

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];

Test in this way:

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];

I hope this helps you

Just posting this answers for reference, since the user already got the answer, Try this code in Swift and let me know how it goes..

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

}

Function Call:

 labelName = buttomBoder(label: labelName)

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM