how to set cornerRadius for only top-left corner of a UILabel?

Viewed 8877
import UIKit

class ViewController: UIViewController {

@IBOutlet weak var myText: UILabel!

override func viewDidLoad() {
    super.viewDidLoad()
}

override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
 }
}
5 Answers

For iOS 11 onwards use Masked Corners property.

There is now a maskedCorners property for the layer. This is a CACornerMask which has four possible values for each corner:

  • layerMaxXMaxYCorner - bottom right corner
  • layerMaxXMinYCorner - top right corner
  • layerMinXMaxYCorner - bottom left corner
  • layerMinXMinYCorner - top left corner

Create an extension for better use:

extension UIView {

   func roundCorners(corners:CACornerMask, radius: CGFloat) {
      self.layer.cornerRadius = radius
      self.layer.maskedCorners = corners
   }
}

Example:

class CustomCell: UICollectionViewCell {

   override func layoutSubviews() {
      //Round left and righ top corners
      yourView.roundCorners(corners: [.layerMinXMinYCorner, .layerMaxXMinYCorner], radius: radius)
   }    
}
Related