如您所见,我希望标题位于图像下方,并且两者都水平居中。小心,它们是按钮的组成部分。我尝试更改界面构建器上的插入值,但它没有与其他屏幕一起工作(我使用自动布局),它搞砸了。
我是否可以使用IB或必须使用"硬代码"
答案 0 :(得分:1)
在界面构建器中它很简单,只需添加一个按钮就可以将其更改为自定义类似下方的图像以及标题为设置
并设置按钮的图像,我将其设置为settingsButton.png
。
现在你需要设置对齐,例如,
现在你可以为图像和标题设置昆虫,为图像设置昆虫你选择edge
image
如下图所示,并调整昆虫
并且对于标题,现在为edge
选择title
并调整昆虫,如下图所示,
现在您的按钮看起来如下所示
希望这有助于你:)
答案 1 :(得分:0)
尝试将CAShapeLayer添加到按钮: -
1。)定义一个UIBezierPath
,rect :
框架与按钮
2.。)定义CAShapeLayer
,其中包含bezierPath
3。)通过添加CATextLayer
:https://developer.apple.com/library/ios/documentation/GraphicsImaging/Reference/CATextLayer_class/
4。)将shapeLayer和textLayer作为subLayer添加到按钮层,在这种情况下为这些图层添加相应的zPosition
-1
5.)设置第一层的不透明度(alpha),即Button。
以下是它的代码: -
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!")
}
}
PS:1。)在您的情况下,只需要CATextLayer
......
2。)你在按钮中看到的红色圆圈是一个图像。
我希望这会有所帮助