一聚教程网:一个值得你收藏的教程网站

最新下载

热门教程

Swift将导航栏标题修改成自定义视图(图片、按钮、分段选择等)

时间:2015-12-02 编辑:简简单单 来源:一聚教程网

默认导航栏UINavigationController的标题是文字,通过navigationItem.titleView属性可以很方便的将其替换成自定义的UIView视图。

 
 

1,使用图片作为标题

原文:Swift - 将导航栏标题修改成自定义视图(图片、按钮、分段选择等)

 

1
2
let image = UIImage(named: "logo")
self.navigationItem.titleView = UIImageView(image: image)

2,使用按钮作为标题

原文:Swift - 将导航栏标题修改成自定义视图(图片、按钮、分段选择等)

import UIKit
 
class ViewController: UIViewController {
 
    override func viewDidLoad() {
        super.viewDidLoad()
 
        let button = UIButton(frame:CGRectMake(0, 0, 110, 110))
        button.setImage(UIImage(named: "btn3"), forState: .Normal)
        button.addTarget(self,action:Selector("titleTapped"),forControlEvents:.TouchUpInside)
        self.navigationItem.titleView = button
    }
     
    func titleTapped(){
        print("tapped")
    }
 
    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
    }
}

3,使用分段选择控件作为标题

原文:Swift - 将导航栏标题修改成自定义视图(图片、按钮、分段选择等)

import UIKit
 
class ViewController: UIViewController {
 
    override func viewDidLoad() {
        super.viewDidLoad()
 
        let items=["电话","短信"] as [AnyObject]
        let segmented=UISegmentedControl(items:items)
        segmented.center=self.view.center
        segmented.selectedSegmentIndex=0 //默认选中第1项
        segmented.addTarget(self, action: "segmentDidchange:",
            forControlEvents: UIControlEvents.ValueChanged)  //添加值改变监听
        self.navigationItem.titleView = segmented
    }
     
    func segmentDidchange(segmented:UISegmentedControl){
        //获得选项的索引
        print(segmented.selectedSegmentIndex)
        //获得选择的文字
        print(segmented.titleForSegmentAtIndex(segmented.selectedSegmentIndex))
    }
 
    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
    }
}

热门栏目