方法一,直接自定义文字
[objc] view plain copy
let item=UIBarButtonItem(title: "分享", style: UIBarButtonItemStyle.Plain, target: self, action: nil)
self.navigationItem.rightBarButtonItem=item
方法二,使用系统图标
[objc] view plain copy
let item1=UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.Done, target: self, action: nil)//此处使用的图标UIBarButtonSystemItem是一个枚举.大家可以尝试一下其他值出来是什么
self.navigationItem.rightBarButtonItem=item1
方法三,使用自定义控件
这里我们自定义button为例来实现
[objc] view plain copy
let btn1=UIButton(frame: CGRectMake(0, 0, 50, 30))
btn1.setTitle("完成", forState: UIControlState.Normal)
let item2=UIBarButtonItem(customView: btn1)
self.navigationItem.rightBarButtonItem=item2
Xcode6新建一个项目,采用swift创建代码:
创建一个ViewController继承UITableViewController
涉及了模型,控制器
模型:ZLPlace.swift
class ZLPlace: NSObject {
var place = ""
var visited = false
}
tableViewController 控制器
import UIKit
class ViewController: UITableViewController {
// 静态数据数组,存放模型
var arrs = [ZLPlace]()
override func viewDidLoad() {
super.viewDidLoad()
let place2 = ZLPlace()
place2.place = "zhang2"
arrs.append(place2)
let place3 = ZLPlace()
place3.place = "zhang3"
arrs.append(place3)
let place4 = ZLPlace()
place4.place = "zhang1"
arrs.append(place4)
self.tableView.reloadData()
}
// 数据源方法, 返回多少组
override func numberOfSectionsInTableView(tableView: UITableView) ->Int {
return 1
}
// 每组有多少行
override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) ->Int {
return arrs.count
}
// 每行展示什么内容
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) ->UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("cell", forIndexPath: indexPath) as UITableViewCell
let place = arrs[indexPath.row]
cell.textLabel.text = place.place
return cell
}
// 点击每个cell触发什么事件
override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
let place = arrs[indexPath.row]
place.visited = !place.visited
let cell = tableView.cellForRowAtIndexPath(indexPath)
cell?.backgroundColor = UIColor.clearColor()
if(place.visited){
cell?.accessoryType = UITableViewCellAccessoryType.Checkmark
}else{
cell?.accessoryType = UITableViewCellAccessoryType.None
}
}
// 点击编辑按钮
@IBAction func editing(sender: AnyObject) {
self.tableView.setEditing(true, animated: true)
}
// 删除每个cell
override func tableView(tableView: UITableView, commitEditingStyle editingStyle: UITableViewCellEditingStyle, forRowAtIndexPath indexPath: NSIndexPath) {
if editingStyle == UITableViewCellEditingStyle.Delete{
arrs.removeAtIndex(indexPath.row)
tableView.deleteRowsAtIndexPaths([indexPath], withRowAnimation: UITableViewRowAnimation.Top)
}
}
}
效果如图:
iOS15:比较简单了(苹果为啥到了iOS15才想起来按钮还需要这个功能呢)。Button新增UIButton.Configuration用来配置
iOS15之前,需要extension UIButton
使用:
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)