Versuchen Sie, eine CAShapeLayer auf die Schaltfläche Hinzufügen: -
1.) Legen Sie einen UIBezierPath
mit dem rect :
Rahmen definieren gleiche wie die der Taste
2.) eine CAShapeLayer
mit Pfad zu der eines bezierPath
3.) text „B“ in der Mitte der Taste hinzufügen, indem ein CATextLayer
: https://developer.apple.com/library/ios/documentation/GraphicsImaging/Reference/CATextLayer_class/
4.) hinzufügen, dass shapeLayer und Textebene als Subschicht auf die Schicht der Taste, insbesondere solchen Schicht ein jeweiliges zPosition
in diesen geben, Fall -1
5.) Stellen Sie die Opazität (Alpha) für die erste Ebene ein, z. B. Button. Hier
ist, was der Code könnte wie folgt aussehen: -
import UIKit
class ViewController: UIViewController {
@IBOutlet weak var btn: UIButton!
override func viewDidLoad() {
super.viewDidLoad()
setupButton()
}
func setupButton(){
print(btn.bounds)
print(btn.frame)
let bezPath : UIBezierPath = UIBezierPath(rect: btn.bounds)
let lyr : CAShapeLayer = CAShapeLayer()
let txtLyr : CATextLayer = CATextLayer()
lyr.path = bezPath.CGPath
lyr.fillColor = UIColor.blueColor().CGColor
lyr.zPosition = -1
lyr.opacity = 0.5
txtLyr.string = "B"
// txtLyr.font =
txtLyr.fontSize = 38.0
txtLyr.zPosition = -1
txtLyr.frame = btn.bounds
print(txtLyr.frame)
txtLyr.alignmentMode = kCAAlignmentCenter
btn.layer.addSublayer(lyr)
btn.layer.addSublayer(txtLyr)
}
@IBAction func btnAction(sender: UIButton) {
print("Button is pressed!")
}
}
Mit diesem ist der Ausgang: - 
PS: 1.) In Ihrem Fall nur CATextLayer
benötigt würde ...
2.) Das rote Kreis-Ding, das Sie in der Schaltfläche sehen, ist ein Bild.
Ich hoffe, das
Sie wollen Schaltfläche Titel unter Schaltfläche Bild? – technerd
Ja! Kannst du mir helfen? –