IOS adds bottom border to UILabel with shadow

Can I learn how to add a lower border to a UILable with only a shadow? There is no upper, left, right border.

this does not work. Here is the code I tried, but it does not work.

 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]; 
+6
source share
2 answers

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

Hope this helps you.

+24
source

Just send this answer for reference, as the user has already received the answer. Try this code in Swift and let me know how this happens.

 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) 
0
source

Source: https://habr.com/ru/post/924896/


All Articles