Lop*_* Hu 100 xcode uibutton ios swift
我正在尝试使用Swift更改UIButton的图像......我该怎么办
这是OBJ-C代码.但我不知道Swift:
[playButton setImage:[UIImage imageNamed:@"play.png"] forState:UIControlStateNormal];
Run Code Online (Sandbox Code Playgroud)
Dha*_*esh 290
从你的Obc-C代码我想你想设置一个Image for按钮,所以试试这个方法:
let playButton = UIButton(type: .Custom)
if let image = UIImage(named: "play.png") {
playButton.setImage(image, forState: .Normal)
}
Run Code Online (Sandbox Code Playgroud)
简而言之:
playButton.setImage(UIImage(named: "play.png"), forState: UIControlState.Normal)
Run Code Online (Sandbox Code Playgroud)
对于Swift 3:
let playButton = UIButton(type: .custom)
playButton.setImage(UIImage(named: "play.png"), for: .normal)
Run Code Online (Sandbox Code Playgroud)
假设这是你的联系UIButton Name方式
@IBOutlet var btn_refresh: UIButton!
Run Code Online (Sandbox Code Playgroud)
您可以直接将图像置于三种模式
// for normal state
btn_refresh.setImage(UIImage(named: "xxx.png"), forState: UIControlState.Normal)
// for Highlighted state
btn_refresh.setImage(UIImage(named: "yyy.png"), forState: UIControlState.Highlighted)
// for Selected state
btn_refresh.setImage(UIImage(named: "zzzz.png"), forState: UIControlState.Selected)
Run Code Online (Sandbox Code Playgroud)
你的按钮动作
//MARK: button_refresh action
@IBAction func button_refresh_touchup_inside(sender: UIButton)
{
//if you set the image on same UIButton
sender.setImage(UIImage(named: "newimage.png"), forState: UIControlState.Normal)
//if you set the image on another UIButton
youranotherbuttonName.setImage(UIImage(named: "newimage.png"), forState: UIControlState.Normal)
}
Run Code Online (Sandbox Code Playgroud)
小智 9
在Swift 4,(Xcode 9)示例中将按钮的图像转换为On或Off(btnRec):
var bRec:Bool = true
@IBOutlet weak var btnRec: UIButton!
@IBAction func btnRec(_ sender: Any) {
bRec = !bRec
if bRec {
btnRec.setImage(UIImage(named: "MicOn.png"), for: .normal)
} else {
btnRec.setImage(UIImage(named: "MicOff.png"), for: .normal)
}
}
Run Code Online (Sandbox Code Playgroud)
对于任何使用Assets.xcassets和Swift 3的人来说,就像这样(不需要.png)
let buttonDone = UIButton(type: .Custom)
if let image = UIImage(named: "Done") {
self.buttonDone.setImage(image, for: .normal)
}
Run Code Online (Sandbox Code Playgroud)
Swift 5 并确保图像缩放到按钮的大小,但保持在按钮范围内。
yourButton.clipsToBounds = true
yourButton.contentMode = .scaleAspectFill
// Use setBackgroundImage or setImage
yourButton.setBackgroundImage(UIImage(named: "yourImage"), for: .normal)
Run Code Online (Sandbox Code Playgroud)
截至swift 3.0.已删除正常状态.您可以使用以下来应用正常状态.
myButton.setTitle("myTitle", for: [])
Run Code Online (Sandbox Code Playgroud)
我更喜欢首先在顶部初始化变量的方法:
let playButton:UIButton!
var image:UIImage!
Run Code Online (Sandbox Code Playgroud)
然后在viewDidLoad中设置它们
override func viewDidLoad {
...
playButton = UIButton(type: .Custom)
imagePlay = UIImage(named:"play.png")
playButton.setImage(imagePlay, forState: .Normal)
}
Run Code Online (Sandbox Code Playgroud)
小智 5
是的,即使我们可以通过使用标志来更改 UIButton 的图像。
class ViewController: UIViewController
{
@IBOutlet var btnImage: UIButton!
var flag = false
override func viewDidLoad()
{
super.viewDidLoad()
//setting default image for button
setButtonImage()
}
@IBAction func btnClick(_ sender: Any)
{
flag = !flag
setButtonImage()
}
func setButtonImage(){
let imgName = flag ? "share" : "image"
let image1 = UIImage(named: "\(imgName).png")!
self.btnImage.setImage(image1, for: .normal)
}
}
Run Code Online (Sandbox Code Playgroud)
在这里,每次单击后,您的按钮图像都会交替更改。
小智 5
斯威夫特 5
yourButton.setImage(UIImage(named: "BUTTON_FILENAME.png"), for: .normal)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
202874 次 |
| 最近记录: |