开始你认为学完 swift 之后就能够开发 App 啦?还早呢,UI 组件学一学吧 ????
UILabel // 应用代码增加 UILabel 横向为 X ,纵向为 Y,坐标原点在左上角 let label = UILabel(frame: CGRect(x: 20, y: 40, width: 200, height: 30)) label.text = "Hello World" // 增加到以后视图 self.view.addSubview(label) let label2 = UILabel(frame: CGRect(x: 20, y: 60, width: 200, height: 30)) label2.text = "Geer" // 设置字体为 20 号加粗的零碎字体 label2.font = UIFont.boldSystemFont(ofSize: 20) // 设置字体色彩为红色 label2.textColor = UIColor.red // 设置暗影色彩 label2.shadowColor = UIColor.green // 设置暗影偏移 label2.shadowOffset = CGSize(width: 2, height: 2) // 设置字体对其 label2.textAlignment = NSTextAlignment.center self.view.addSubview(label2) // 多行文本 let text = """ 除了自定义连贯表的表名,你还能够通过传递额定的参数到 belongsToMany 办法来定义该表中字段的键名。第三个参数是定义此关联的模型在连贯表里的外键名,第四个参数是另一个模型在连贯表里的外键名: """ let label3 = UILabel(frame: CGRect(x: 20, y: 80, width: 200, height: 150)) label3.text = text // 设置显示行数 label3.numberOfLines = 7 self.view.addSubview(label3)UIButton // 创立 button 实例,指定 button 的类型 let button = UIButton(type: .system) // 设置地位与尺寸 button.frame = CGRect(x: 20, y: 40, width: 100, height: 30) // 设置按钮背景色彩 button.backgroundColor = .purple // 设置按钮题目 button.setTitle("我是按钮", for: UIControl.State()) // 设置题目背景色彩 button.setTitleColor(.white, for: UIControl.State()) // 为按钮增加事件 // 第一个传入触发事件时事件办法的执行者,比方以后则是 self // 第二个参数传入一个#selector选择器实例,这个参数决定要执行的办法 // 第三个参数设置触发的条件,列入按钮被按下,按钮被按下并抬起 button.addTarget(self, action: #selector(touchBegin), for: UIControl.Event.touchUpInside) self.view.addSubview(button)@objc func touchBegin(){ print("click button") }UIImageView // 创立图片实例 let image = UIImage(named: "img1") // 创立图片 View let imageView = UIImageView(image: image) // 设置 view 的地位 imageView.frame = CGRect(x: 40, y: 50, width: 200, height: 200) self.view.addSubview(imageView) // 动画 var imageArray = Array<UIImage>() for index in 1...2 { if let fImage = UIImage(named: "f\(index)") { imageArray.append(fImage) } } // 创立 View let fImageView = UIImageView(frame: CGRect(x: 30, y: 250, width: 200, height: 100)) // 设置动画数组 fImageView.animationImages = imageArray // 设置播放时长 fImageView.animationDuration = 3 // 设置动画播放次数 fImageView.animationRepeatCount = 0 self.view.addSubview(fImageView) // 开始播放 fImageView.startAnimating()UITextField // 创立实例 设置尺寸 let textField = UITextField(frame: CGRect(x: 20, y: 30, width: 100, height: 30)) // 设置边框输出格调 textField.borderStyle = .line // 设置文字色彩 textField.textColor = .red // 设置对齐形式 textField.textAlignment = .center // 设置提醒文字 textField.placeholder = "请输出姓名" // 设置代理为自身 textField.delegate = self self.view.addSubview(textField) let textField2 = UITextField(frame: CGRect(x: 20, y: 90, width: 100, height: 30)) // 设置边框输出格调 textField2.borderStyle = .line // 设置文字色彩 textField2.textColor = .red // 设置对齐形式 textField2.textAlignment = .center // 设置提醒文字 textField2.placeholder = "请输出姓名" // 左视图 let imageView1 = UIImageView(image: UIImage(named: "img1")) imageView1.frame = CGRect(x: 0, y: 0, width: 30, height: 30) // 右视图 let imageView2 = UIImageView(image: UIImage(named: "f1")) imageView2.frame = CGRect(x: 0, y: 0, width: 30, height: 30) // 设置左右视图 textField2.leftView = imageView1 textField2.rightView = imageView2 // 设置视图模式 textField2.leftViewMode = .always textField2.rightViewMode = .always self.view.addSubview(textField2)代理办法// 在输入框行将进入编辑状态时调用 func textFieldShouldBeginEditing(_ textField: UITextField) -> Bool { print("行将进入编辑状态时调用") return true } // 曾经开始编辑时调用 func textFieldDidBeginEditing(_ textField: UITextField) { print("曾经开始编辑时调用") } // 按 return 时调用 func textFieldShouldReturn(_ textField: UITextField) -> Bool { textField.resignFirstResponder() return true }UISwitch let swi = UISwitch() swi.frame = CGRect(x: 20, y: 20, width: 100, height: 20) // 设置视图中心点的坐标 swi.center = CGPoint(x: 100, y: 100) // 设置开启状态的色彩 swi.onTintColor = .green // 设置一般状态的色彩 swi.tintColor = .red // 设置滑动的色彩 swi.thumbTintColor = .purple // 设置开关的初始状态 swi.isOn = true swi.addTarget(self, action: #selector(switchChange), for: UIControl.Event.valueChanged) self.view.addSubview(swi)@objc func switchChange(swi: UISwitch){ print(swi.isOn) }UIPageController // 创立 let pageControl = UIPageControl(frame: CGRect(x: 20, y: 100, width: 280, height: 30)) // 设置页数 pageControl.numberOfPages = 10 // 设置背景色彩 pageControl.backgroundColor = .red // 设置页码点背景色彩 pageControl.pageIndicatorTintColor = .green // 设置选中的页码点色彩 pageControl.currentPageIndicatorTintColor = .blue // 设置以后选中的页数 pageControl.currentPage = 3 pageControl.addTarget(self, action: #selector(uiPageChange), for: UIControl.Event.valueChanged) self.view.addSubview(pageControl) @objc func uiPageChange(pageControl: UIPageControl){ print("以后 \(pageControl.currentPage)") }UISegmentedControl let items = ["按钮1","按钮2","按钮三"] let segmentedControl = UISegmentedControl(items: items) // 设置地位与尺寸 segmentedControl.frame = CGRect(x: 100, y: 100, width: 200, height: 30) // 设置控件格调与色彩 segmentedControl.tintColor = .blue segmentedControl.addTarget(self, action: #selector(segmentedControlChange), for: UIControl.Event.valueChanged) self.view.addSubview(segmentedControl)@objc func segmentedControlChange(seg: UISegmentedControl){ print("抉择了 \(seg.selectedSegmentIndex)") // 插入新的按钮 seg.insertSegment(withTitle: "按钮5", at: 0, animated: true) }UISlider let slider = UISlider(frame: CGRect(x: 20, y: 100, width: 280, height: 30)) // 设置最小值 slider.minimumValue = 0 slider.maximumValue = 10 // 初始滑块的值 slider.value = 5 // 设置滑块左侧进度条的色彩 slider.minimumTrackTintColor = .red // 设置滑块右侧的色彩 slider.maximumTrackTintColor = .green // 设置滑块的色彩 slider.thumbTintColor = .blue // 设置进行滑动才触发事件 slider.isContinuous = false slider.addTarget(self, action: #selector(uISliderChange), for: UIControl.Event.valueChanged) self.view.addSubview(slider)@objc func uISliderChange(slider: UISlider){ print(slider.value) }UIActivityIndicatorView let activity = UIActivityIndicatorView(style: UIActivityIndicatorView.Style.medium) activity.center = self.view.center activity.color = .blue // 开始播放 activity.startAnimating() self.view.addSubview(activity)UIProgressView let progressView = UIProgressView(progressViewStyle: UIProgressView.Style.default) // 设置地位和宽度 progressView.frame = CGRect(x: 20, y: 100, width: 280, height: 30) // 设置以后进度 progressView.progress = 0.5 // 设置已走过的进度条进度 progressView.progressTintColor = .red // 设置未走过的色彩 progressView.trackTintColor = .blue self.view.addSubview(progressView)UIStepper let steper = UIStepper(frame: CGRect(x: 100, y: 100, width: 0, height: 0)) // 设置背景色彩 steper.backgroundColor = UIColor.red // 设置控件色彩 steper.tintColor = .blue // 设置最小值 steper.minimumValue = 0 steper.maximumValue = 10 // 设置控件的步长 steper.stepValue = 1 self.view.addSubview(steper)UIPickerView let pickerView = UIPickerView(frame: CGRect(x: 20, y: 100, width: 280, height: 200)) // 设置代理 须要增加 UIPickerViewDelegate pickerView.delegate = self // 设置数据源 须要增加 UIPickerViewDataSource pickerView.dataSource = self self.view.addSubview(pickerView)代理 // pickView 此办法须要选择器控件的分组数量 func numberOfComponents(in pickerView: UIPickerView) -> Int { return 2 } // 此办法须要返回每个分组的行数 func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int { return 10 } // 此办法返回每个分组中的每行数据的题目 func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? { return "第\(component + 1)组第\(row)行" } func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) { print("用户抉择了 \(component)组\(row)行") }UIDataPicker let dataPicker = UIDatePicker(frame: CGRect(x: 20, y: 100, width: 280, height: 200)) // 设置工夫选择器的模式 dataPicker.datePickerMode = .dateAndTime dataPicker.addTarget(self, action: #selector(uiDataPickerChange), for: UIControl.Event.valueChanged) self.view.addSubview(dataPicker)@objc func uiDataPickerChange(dataPicker: UIDatePicker){ print(dataPicker.date) }UISearchBarlet searchBar = UISearchBar(frame: CGRect(x: 20, y: 100, width: 280, height: 30)) // 设置控件的格调 searchBar.searchBarStyle = .minimal searchBar.placeholder = "请输出商品题目" // 显示勾销按钮 searchBar.showsCancelButton = true // 显示控件的书库按钮 searchBar.showsBookmarkButton = true self.view.addSubview(searchBar)完结今日先学这么多,今天再持续
...