本项目功能点概括
选中 PickerView 条目跳转至新界面展示对应图片
返回(学习,使用第 4 步后不需继续使用)
分享
导航 - Navigation Controller
Tab Bar Controller
Sketch 制作图标
Auto Layout 分辨率适配
-
绑定控件并初始化 UIPickerView 条目数量
// 绑定控件 @IBOutlet weak var numPicker: UIPickerView! // 初始化 UIPickerVIew 条目数量 let nums = ["num1", "num2", "num3", "num4", "num5"]
-
扩展 ViewController
import UIKit extension ViewController: UIPickerViewDataSource { func numberOfComponentsInPickerView(pickerView: UIPickerView) -> Int { // UIPickerView 栏目数量 return 1 } func pickerView(pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int { // ViewController 中定义的条目数量 return nums.count } } extension ViewController: UIPickerViewDelegate { func pickerView(pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? { return nums[row] } }
-
在 viewDidLoad() 中绑定 UIPickerView 的扩展
numPicker.dataSource = self numPicker.delegate = self
-
在 Storyboard 中给 Segue 设定 Identifier
-
ViewController 中重写 prepareForSegue()
prepareForSegue():Segue跳转前会调用
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { // 匹配步骤 4 中设定的 Identifier if segue.identifier == "GoToGallery" { // 转换类型 let vc = segue.destinationViewController as! GalleryViewController // 匹配选中的 UIPickerView 条目 // 将选中的条目信息传递给页面 GalleryViewController switch numPicker.selectedRowInComponent(0) { case 0: vc.imgName = "1" case 1: vc.imgName = "2" case 2: vc.imgName = "3" case 3: vc.imgName = "4" case 4: vc.imgName = "5" default: vc.imgName = nil } } }
-
在 GalleryViewController 的 viewDidLoad() 中接收信息并展示图片
override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view, typically from a nib. if let name = imgName { numImg.image = UIImage(named: imgName) switch name { case "1": navigationItem.title = "num1" case "2": navigationItem.title = "num2" case "3": navigationItem.title = "num3" case "4": navigationItem.title = "num4" case "6": navigationItem.title = "num6" default: break } } }
-
在跳转前页面中必须添加以下方法
// 该方法的好处:可以读取所在页面中的属性 @IBAction func close(segue: UIStoryboardSegue) { print("close") }
-
Storyboard 中拖动按钮到 Exit 即可
-
IOS 中带了 Twitter、 Facebook、 新浪微博、 腾讯微博:
import UIKit
@IBAction func btShare(sender: AnyObject) { var controller: SLComposeViewController = SLComposeViewController(forServiceType: SLServiceTypeSinaWeibo) // 文字描述 controller.setInitialText("play with me") // 图片描述 controller.addImage(numImg.image) self.presentViewController(controller, animated: true, completion: nil) }
-
Editor -> Embed In -> Nevigation Controller
-
设置标题
navigationItem.title
-
Editor -> Embed In -> Tab Bar Controller
-
可设置单个 TAB 的图标和标题
-
ALT + A 拖出 Artboard
-
O、 Shift 画圆
-
在圆中添加图标
-
Command + G 成组
-
Sketch:http://sketchcn.com
-
Storyboard 中选中 View 勾选
Add Missing Constraints
-
在右面板中做调整(间距、等)
-
Nib - 二进制(Xib - xml)
-
纯代码编写
-
Storyboard