如何使用swift设置条形按钮的图像?

前端之家收集整理的这篇文章主要介绍了如何使用swift设置条形按钮的图像?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在设置一个图像为酒吧按钮项目,我有一个像:

分辨率为30 * 30,但是我将此图像分配给条形按钮,其外观如下所示:

我以这种方式分配了图像:

并且如果我尝试这样的方式像制作一个IBOutlet的按钮,并设置图像编程从this问题和代码为:

  1. // Outlet for bar button
  2. @IBOutlet weak var fbButton: UIBarButtonItem!
  3.  
  4. // Set Image for bar button
  5. var backImg: UIImage = UIImage(named: "fb.png")!
  6. fbButton.setBackgroundImage(backImg,forState: .Normal,barMetrics: .Default)

但没有发生这个,

有人可以告诉我我做错了什么吗?

或者是这样做的糊口?

我已经通过以下代码实现了这一点:
  1. import UIKit
  2.  
  3. class ViewController: UIViewController {
  4.  
  5. override func viewDidLoad() {
  6. super.viewDidLoad()
  7. //create a new button
  8. let button: UIButton = UIButton.buttonWithType(UIButtonType.Custom) as! UIButton
  9. //set image for button
  10. button.setImage(UIImage(named: "fb.png"),forState: UIControlState.Normal)
  11. //add function for button
  12. button.addTarget(self,action: "fbButtonPressed",forControlEvents: UIControlEvents.TouchUpInside)
  13. //set frame
  14. button.frame = CGRectMake(0,53,31)
  15.  
  16. let barButton = UIBarButtonItem(customView: button)
  17. //assign button to navigationbar
  18. self.navigationItem.rightBarButtonItem = barButton
  19. }
  20.  
  21. //This method will call when you press button.
  22. func fbButtonPressed() {
  23.  
  24. println("Share to fb")
  25. }
  26. }

结果将是:

同样的方式,您也可以通过这种方式设置左侧的按钮:

  1. self.navigationItem.leftBarButtonItem = barButton

结果将是:

如果您想要与导航控制器相同的事务,当您返回使用默认返回按钮,那么您可以使用此代码使用自定义后退按钮实现:

  1. func backButtonPressed(sender:UIButton) {
  2. navigationController?.popViewControllerAnimated(true)
  3. }

对于swift 3.0:

  1. import UIKit
  2.  
  3. class ViewController: UIViewController {
  4.  
  5. override func viewDidLoad() {
  6. super.viewDidLoad()
  7. //create a new button
  8. let button = UIButton.init(type: .custom)
  9. //set image for button
  10. button.setImage(UIImage(named: "fb.png"),for: UIControlState.normal)
  11. //add function for button
  12. button.addTarget(self,action: #selector(ViewController.fbButtonPressed),for: UIControlEvents.touchUpInside)
  13. //set frame
  14. button.frame = CGRect(x: 0,y: 0,width: 53,height: 51)
  15.  
  16. let barButton = UIBarButtonItem(customView: button)
  17. //assign button to navigationbar
  18. self.navigationItem.rightBarButtonItem = barButton
  19. }
  20.  
  21. //This method will call when you press button.
  22. func fbButtonPressed() {
  23.  
  24. print("Share to fb")
  25. }
  26. }

猜你在找的Swift相关文章