Swift 设置navigationitem

我们以设置右侧按钮为例,左侧方法类似

方法一,直接自定义文字

[objc]  view plain  copy
  1. let item=UIBarButtonItem(title: "分享", style: UIBarButtonItemStyle.Plain, targetself, action: nil)  
  2. self.navigationItem.rightBarButtonItem=item  

方法二,使用系统图标

[objc]  view plain  copy
  1. let item1=UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.Done, targetself, action: nil)//此处使用的图标UIBarButtonSystemItem是一个枚举.大家可以尝试一下其他值出来是什么  
  2. self.navigationItem.rightBarButtonItem=item1  

方法三,使用自定义控件

这里我们自定义button为例来实现

[objc]  view plain  copy
  1. let btn1=UIButton(frame: CGRectMake(005030))  
  2. btn1.setTitle("完成", forState: UIControlState.Normal)  
  3. let item2=UIBarButtonItem(customView: btn1)  
  4. self.navigationItem.rightBarButtonItem=item2  

方法四,我们还可以直接放一张图片上去

[objc]  view plain  copy
  1. var img=UIImage(named: "test_img")  
  2.   
  3. let item3=UIBarButtonItem(image: img, style: UIBarButtonItemStyle.Plain, targetself, action: nil)  
  4. self.navigationItem.rightBarButtonItem=item3  

如果只是按照以上方法实现,我们会发现出来的是一个纯色的图片,是因为iOS扁平化设计风格应用之后做成这样的,如果需要现实图片,我们可以设置一项 img=img?.imageWithRenderingMode(UIImageRenderingMode.AlwaysOriginal)



以上方法都是添加一个按钮

如果想一次添加多个该怎么做?

我们发现我们给右侧按钮赋值的方法是 rightBarButtonItem   其实还有属性 rightBarButtonItems

看代码

[objc]  view plain  copy
  1. let items1=UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.Pause, targetself, action: nil)  
  2. let items2=UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.Action, targetself, action: nil)  
  3. self.navigationItem.rightBarButtonItems=[items1,items2]  

如果想设置左侧按钮 直接 调用 self.navgigationItem.leftBarButtonItem 即可
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,下面是一个简单的注册界面的 Swift 5 代码: ```swift import UIKit class RegisterViewController: UIViewController { let titleLabel: UILabel = { let label = UILabel() label.text = "注册" label.font = UIFont.boldSystemFont(ofSize: 36) label.translatesAutoresizingMaskIntoConstraints = false return label }() let emailTextField: UITextField = { let textField = UITextField() textField.placeholder = "邮箱" textField.borderStyle = .roundedRect textField.translatesAutoresizingMaskIntoConstraints = false return textField }() let passwordTextField: UITextField = { let textField = UITextField() textField.placeholder = "密码" textField.borderStyle = .roundedRect textField.isSecureTextEntry = true textField.translatesAutoresizingMaskIntoConstraints = false return textField }() let registerButton: UIButton = { let button = UIButton(type: .system) button.setTitle("注册", for: .normal) button.titleLabel?.font = UIFont.boldSystemFont(ofSize: 24) button.addTarget(self, action: #selector(registerButtonTapped), for: .touchUpInside) button.translatesAutoresizingMaskIntoConstraints = false return button }() override func viewDidLoad() { super.viewDidLoad() view.backgroundColor = .white navigationItem.title = "注册" view.addSubview(titleLabel) view.addSubview(emailTextField) view.addSubview(passwordTextField) view.addSubview(registerButton) NSLayoutConstraint.activate([ titleLabel.centerXAnchor.constraint(equalTo: view.centerXAnchor), titleLabel.topAnchor.constraint(equalTo: view.safeAreaLayoutGuide.topAnchor, constant: 50), emailTextField.centerXAnchor.constraint(equalTo: view.centerXAnchor), emailTextField.topAnchor.constraint(equalTo: titleLabel.bottomAnchor, constant: 50), emailTextField.widthAnchor.constraint(equalToConstant: 300), passwordTextField.centerXAnchor.constraint(equalTo: view.centerXAnchor), passwordTextField.topAnchor.constraint(equalTo: emailTextField.bottomAnchor, constant: 20), passwordTextField.widthAnchor.constraint(equalToConstant: 300), registerButton.centerXAnchor.constraint(equalTo: view.centerXAnchor), registerButton.topAnchor.constraint(equalTo: passwordTextField.bottomAnchor, constant: 50), registerButton.widthAnchor.constraint(equalToConstant: 200), registerButton.heightAnchor.constraint(equalToConstant: 50) ]) } @objc func registerButtonTapped() { // 注册逻辑 } } ``` 这个注册界面包括了一个标题、一个邮箱输入框、一个密码输入框和一个注册按钮。在视图加载时,我们添加了这些视图并使用了自动布局约束来布局它们。 当用户点击注册按钮时,`registerButtonTapped` 方法将会被调用。你可以在这个方法中添加你自己的注册逻辑。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值