//// DefaultShowVC.swift// Swift-UI//// Created by yangjun on 15/6/15.// copyright (c) 2015年 阳君. All rights reserved.//import UIKit/** 样式*/enum DefaultShowStyle : Int { case UILable case UIbutton case UISegmentedControl case UITextFIEld case UiSlider case UISwitch case UIActivityIndicatorVIEw case UIProgressVIEw case UIPageControl case UIStepper case UIImageVIEw case UITextVIEw case UIDatePicker case UIPickerVIEw case UIAlertVIEw case UIActionSheet}/** 基础控件展示*/class DefaultShowVC: UIVIEwController,UITextFIEldDelegate,UITextVIEwDelegate,UIPickerVIEwDataSource,UIPickerVIEwDelegate,UIActionSheetDelegate { /** 样式*/ var style: DefaultShowStyle = DefaultShowStyle.UILable; /** 屏幕宽*/ private var wIDth: CGfloat! /** 数据源*/ private var dataArray: Array<Array<String>> = [] overrIDe func vIEwDIDLoad() { super.vIEwDIDLoad() self.wIDth = self.vIEw.frame.size.wIDth switch (self.style) { case DefaultShowStyle.UILable: self.initUILabel() case DefaultShowStyle.UIbutton: self.initUIbutton() case DefaultShowStyle.UISegmentedControl: self.initUISegmentedControl() case DefaultShowStyle.UITextFIEld: self.initUITextFIEld() case DefaultShowStyle.UiSlider: self.initUiSlider() case DefaultShowStyle.UISwitch: self.initUISwitch() case DefaultShowStyle.UIActivityIndicatorVIEw: self.initUIActivityIndicatorVIEw() case DefaultShowStyle.UIProgressVIEw: self.initUIProgressVIEw() case DefaultShowStyle.UIPageControl: self.initUIPageControl() case DefaultShowStyle.UIStepper: self.initUIStepper() case DefaultShowStyle.UIImageVIEw: self.initUIImageVIEw() case DefaultShowStyle.UITextVIEw: self.initUITextVIEw() case DefaultShowStyle.UIDatePicker: self.initUIDatePicker() case DefaultShowStyle.UIPickerVIEw: self.initUIPickerVIEw() case DefaultShowStyle.UIAlertVIEw: self.initUIAlertVIEw() case DefaultShowStyle.UIActionSheet: self.initUIActionSheet() default: println("未找到") } } // MARK: - UILable private func initUILabel() { let label:UILabel = UILabel(frame: CGRectMake(0,0,110,30))// 初始化 label.backgroundcolor = UIcolor.clearcolor()// 背景色 label.Font = UIFont.systemFontOfSize(17)// 字体大小 label.textcolor = UIcolor.bluecolor()// 字体颜色 label.textAlignment = NSTextAlignment.Center// 居中 label.text = self.Title // 显示 label.center = self.vIEw.center// 居中显示 self.vIEw.addSubvIEw(label)// 加载到当前vIEw } // MARK: - UIbutton private func initUIbutton() { let button:UIbutton = UIbutton(frame: CGRectMake(0,30,30))// 初始化 button.addTarget(self,action: "buttontouchUpInsIDe:",forControlEvents: UIControlEvents.touchUpInsIDe)// 点击事件 button.setimage(UIImage(named: "checked_un"),forState: UIControlState.normal)// 默认 button.setimage(UIImage(named: "checked"),forState: UIControlState.Selected)// 选中 button.center = self.vIEw.center// 居中显示 self.vIEw.addSubvIEw(button)// 加载到当前vIEw } // MARK: 用户点击UIbutton func buttontouchUpInsIDe(button:UIbutton) { button.selected = !button.selected self.Title = "UIbutton(\(button.selected))" } // MARK: - UISegmentedControl private func initUISegmentedControl() { let segmentedControl:UISegmentedControl = UISegmentedControl(items: ["1","2","3"]) segmentedControl.frame = CGRectMake(0,200,30); segmentedControl.addTarget(self,action: "segmentedControlValueChanged:",forControlEvents: UIControlEvents.ValueChanged) segmentedControl.selectedSegmentIndex = 0// 默认 segmentedControl.center = self.vIEw.center self.vIEw.addSubvIEw(segmentedControl) } // MARK: 用户点击UISegmentedControl func segmentedControlValueChanged(segmentedControl:UISegmentedControl) { self.Title = "UISegmentedControl(\(segmentedControl.selectedSegmentIndex))" } // MARK: - UITextFIEld private func initUITextFIEld() { let textFIEld:UITextFIEld = UITextFIEld(frame: CGRectMake(0,155,30)) textFIEld.Font = UIFont.systemFontOfSize(14)// 输入字体大小 textFIEld.delegate = self textFIEld.keyboardType = UIKeyboardType.URL// 键盘样式 textFIEld.borderStyle = UITextborderStyle.RoundedRect// 设置边框样式,只有设置了才会显示边框样式 textFIEld.clearbuttonMode = UITextFIEldviewmode.WhileEditing// 有一键删除按钮 textFIEld.center = self.vIEw.center self.vIEw.addSubvIEw(textFIEld) self.inputAccessoryVIEw(textFIEld)// 完成按钮放在键盘上方 } // MARK: UITextFIEldDelegate // MARK: 正要进入编辑状态 func textFIEldShouldBeginEditing(textFIEld: UITextFIEld) -> Bool { return true } // MARK: 实现监听返回按钮 func textFIEldShouldReturn(textFIEld: UITextFIEld) -> Bool { textFIEld.resignFirstResponder()// 关闭键盘 return true } // MARK: 输入完毕 func textFIEldDIDEndEditing(textFIEld: UITextFIEld) { self.Title = "textFIEld:\(textFIEld.text)" } // MARK: - initUiSlider private func initUiSlider() { let slIDer: UiSlider = UiSlider(frame: CGRectMake(0,31)) slIDer.minimumValue = 0// 指定可变最小值 slIDer.maximumValue = 100// 指定可变最大值 slIDer.value = 50 // 指定初始值 slIDer.addTarget(self,action: "slIDerValueChanged:",forControlEvents: UIControlEvents.ValueChanged)// 响应事件 slIDer.center = self.vIEw.center self.vIEw.addSubvIEw(slIDer) } // MARK: 用户点击UiSlider func slIDerValueChanged(slIDer: UiSlider) { self.Title = "UiSlider:\(slIDer.value)" } // MARK: - UISwitch private func initUISwitch() { let uiSwitch = UISwitch(frame: CGRectMake(0,51,31)) uiSwitch.tintcolor = UIcolor.bluecolor()// 未打开时背景色 uiSwitch.onTintcolor = UIcolor.greencolor()// 打开时背景色 uiSwitch.addTarget(self,action: "switchValueChanged:",forControlEvents: UIControlEvents.ValueChanged) uiSwitch.center = self.vIEw.center self.vIEw.addSubvIEw(uiSwitch) } // MARK: 用户点击UISwitch func switchValueChanged(uiSwitch: UISwitch) { self.Title = "UISwitch:\(uiSwitch.on)" } // MARK: - UIActivityIndicatorVIEw private func initUIActivityIndicatorVIEw() { let activityIndicatorVIEw = UIActivityIndicatorVIEw(frame: CGRectMake(0,50,50))//指定进度轮的大小 activityIndicatorVIEw.activityIndicatorVIEwStyle = UIActivityIndicatorVIEwStyle.WhiteLarge// 显示样式 activityIndicatorVIEw.backgroundcolor = UIcolor.greencolor()// 背景色 activityIndicatorVIEw.Alpha = 0.5// 透明度 //设置背景为圆角矩形 activityIndicatorVIEw.layer.cornerRadius = 6; activityIndicatorVIEw.layer.masksToBounds = true; activityIndicatorVIEw.startAnimating()// 开始 activityIndicatorVIEw.center = self.vIEw.center self.vIEw.addSubvIEw(activityIndicatorVIEw) } // MARK: - UIProgressVIEw private func initUIProgressVIEw() { let progressVIEw = UIProgressVIEw(frame: CGRectMake(0,150,5)) progressVIEw.progressVIEwStyle = UIProgressVIEwStyle.Default// 进度条样式 progressVIEw.center = self.vIEw.center self.vIEw.addSubvIEw(progressVIEw) // 0.5秒触发一次 let timer = NSTimer.scheduledTimerWithTimeInterval(0.1,target: self,selector: "changeNSTimer:",userInfo: progressVIEw,repeats: true) timer.fire()// 启动 } // MARK: - UIPageControl private func initUIPageControl() { let pageControl = UIPageControl(frame: CGRectMake(0,100,37)) pageControl.numberOfPages = 10// 默认10页 pageControl.currentPage = 1// 选中第1页 pageControl.pageIndicatorTintcolor = UIcolor.greencolor()// 默认背景色 pageControl.currentPageIndicatorTintcolor = UIcolor.bluecolor()// 选中时背景色 pageControl.center = self.vIEw.center self.vIEw.addSubvIEw(pageControl) // 0.5秒触发一次 let timer = NSTimer.scheduledTimerWithTimeInterval(0.5,userInfo: pageControl,repeats: true) timer.fire()// 启动 } // MARK: - UIStepper private func initUIStepper() { let stepper = UIStepper(frame: CGRectMake(0,50)) stepper.maximumValue = 10// 最大 stepper.minimumValue = 0// 最小 stepper.value = 5// 默认 stepper.stepValue = 0.1// 每次增加 stepper.continuous = true// 按住不放来连续更改数值 stepper.wraps = true// 是否循环(到最大值时再增加数值最从最小值开始) stepper.addTarget(self,action: "stepperValueChanged:",forControlEvents: UIControlEvents.ValueChanged) stepper.center = self.vIEw.center self.vIEw.addSubvIEw(stepper) } // MARK: 用户点击UIStepper func stepperValueChanged(stepper: UIStepper) { self.Title = "UIStepper:\(stepper.value)" } // MARK: - UIImageVIEw private func initUIImageVIEw() { let image = UIImage(named: "tab_1") let imageVIEw = UIImageVIEw(image: image) println("\(imageVIEw.frame)") imageVIEw.center = self.vIEw.center self.vIEw.addSubvIEw(imageVIEw) self.vIEw.backgroundcolor = UIcolor.lightGraycolor() } // MARK: - UITextVIEw private func initUITextVIEw() { let textVIEw = UITextVIEw(frame: CGRectMake(0,self.wIDth-30,400),textContainer:nil) textVIEw.delegate = self textVIEw.Font = UIFont.systemFontOfSize(14) textVIEw.textAlignment = NSTextAlignment.left// 对齐方式 textVIEw.layer.borderWIDth = 1// 边宽 textVIEw.layer.bordercolor = UIcolor.lightGraycolor().CGcolor// 边的颜色 textVIEw.layer.cornerRadius = 5// 圆角 self.inputAccessoryVIEw(textVIEw)// 完成按钮放在键盘上方 textVIEw.center = self.vIEw.center self.vIEw.addSubvIEw(textVIEw) } // MARK: - UITextVIEwDelegate func textVIEwDIDEndEditing(textVIEw: UITextVIEw) { println("UITextVIEw: \(textVIEw.text)") } // MARK: - UIDatePicker private func initUIDatePicker() { let datePicker = UIDatePicker(frame: CGRectMake(0,self.wIDth,400)) datePicker.datePickerMode = UIDatePickerMode.DateAndTime //设置样式,当前设为同时显示日期和时间 datePicker.minuteInterval = 5// 设置分钟表盘的时间间隔(必须能让60整除,默认是1分钟) datePicker.date = NSDate()// 默认日期 datePicker.addTarget(self,action: "datePickerValueChanged:",forControlEvents: UIControlEvents.ValueChanged) // 设置日期范围(超过日期范围,会回滚到最近的有效日期) let dateFormatter = NSDateFormatter() dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss" datePicker.maximumDate = dateFormatter.dateFromString("2015-05-16 08:00:00") datePicker.minimumDate = dateFormatter.dateFromString("2015-07-16 08:00:00") // datePicker.setDate(NSDate(),animated: true)// 回到默认日期 datePicker.center = self.vIEw.center self.vIEw.addSubvIEw(datePicker) } // MARK: 用户选中UIDatePicker func datePickerValueChanged(datePicker: UIDatePicker) { let dateFormatter = NSDateFormatter() dateFormatter.dateFormat = "yyyy-MM-dd HH:mm" self.Title = "\(dateFormatter.stringFromDate(datePicker.date))" } // MARK: - UIPickerVIEw private func initUIPickerVIEw() { // 数据源 self.dataArray.append(["0","1","3","4","5","6","7","8","9"]) self.dataArray.append(["0","9"]) let pickerVIEw = UIPickerVIEw(frame: CGRectMake(0,400)) pickerVIEw.dataSource = self pickerVIEw.delegate = self pickerVIEw.showsSelectionIndicator = true pickerVIEw.center = self.vIEw.center self.vIEw.addSubvIEw(pickerVIEw) } // MARK: UIPickerVIEwDataSource // MARK: 列数 func numberOfComponentsInPickerVIEw(pickerVIEw: UIPickerVIEw) -> Int { return self.dataArray.count } // MARK: 行数 func pickerVIEw(pickerVIEw: UIPickerVIEw,numberOfRowsInComponent component: Int) -> Int { return self.dataArray[component].count } // MARK: UIPickerVIEwDelegate // MARK: 列宽 func pickerVIEw(pickerVIEw: UIPickerVIEw,wIDthForComponent component: Int) -> CGfloat { return 40 } // MARK: 行高 func pickerVIEw(pickerVIEw: UIPickerVIEw,rowHeightForComponent component: Int) -> CGfloat { return 44 } // MARK: 每行每列显示的数据 func pickerVIEw(pickerVIEw: UIPickerVIEw,TitleForRow row: Int,forComponent component: Int) -> String! { // 也可以实现func pickerVIEw(pickerVIEw: UIPickerVIEw,vIEwForRow row: Int,forComponent component: Int,reusingVIEw vIEw: UIVIEw!) -> UIVIEw 二者取其一 let array: Array = self.dataArray[component] return array[row] } // MARK: 用户选中UIPickerVIEw func pickerVIEw(pickerVIEw: UIPickerVIEw,dIDSelectRow row: Int,inComponent component: Int) { println("\(component)-\(row)") let first = self.dataArray[0][pickerVIEw.selectedRowInComponent(0)] let second = self.dataArray[1][pickerVIEw.selectedRowInComponent(1)] self.Title = "UIPickerVIEw:\(first)\(second)" } // MARK: - UIAlertVIEw private func initUIAlertVIEw() { let alertVIEw = UIAlertVIEw(Title: "UIAlertVIEw",message: "阳君测试",delegate: self,cancelbuttonTitle: "取消") // 增加其他按钮 alertVIEw.addbuttonWithTitle("1") alertVIEw.addbuttonWithTitle("2") alertVIEw.show()// 显示 } // MARK: UIAlertVIEwDelegate func alertVIEw(alertVIEw: UIAlertVIEw,clickedbuttonAtIndex buttonIndex: Int) { // 判断是否点击取消按钮 if (alertVIEw.cancelbuttonIndex == buttonIndex) { return } self.Title = "UIAlertVIEw:\(buttonIndex)" } // MARK: - UIActionSheet private func initUIActionSheet() { let actionSheet = UIActionSheet() actionSheet.Title = "UIActionSheet" actionSheet.addbuttonWithTitle("默认")// 添加按钮 actionSheet.addbuttonWithTitle("显著")// 添加显著按钮 actionSheet.addbuttonWithTitle("取消")// 添加取消按钮 actionSheet.destructivebuttonIndex = 1// 显著按钮的位置 actionSheet.cancelbuttonIndex = actionSheet.numberOfbuttons - 1// 取消按钮的位置 actionSheet.delegate = self actionSheet.showInVIEw(self.vIEw.window)// 显示 } // MARK: UIActionSheetDelegate func actionSheet(actionSheet: UIActionSheet,clickedbuttonAtIndex buttonIndex: Int) { // 判断是否点击取消按钮 if (actionSheet.cancelbuttonIndex == buttonIndex) { return } self.Title = "UIActionSheet:\(buttonIndex)" } // MARK: - 键盘上方添加确定按钮 private func inputAccessoryVIEw(vIEw: UIVIEw) { // 键盘上方的按钮 let topVIEw:UIToolbar = UIToolbar(frame: CGRectMake(0,30)) let spacebutton: UIbarbuttonItem = UIbarbuttonItem(barbuttonSystemItem: UIbarbuttonSystemItem.FlexibleSpace,target: nil,action: nil)//定义两个flexibleSpace的button,放在toolbar上,这样完成按钮就会在最右边 let donebutton = UIbarbuttonItem(barbuttonSystemItem: UIbarbuttonSystemItem.Done,action: "onClickDone:")//定义完成按钮 topVIEw.items = [spacebutton,spacebutton,donebutton] //在toolbar上加上这些按钮 // UITextVIEw加确定按钮 let textVIEw:UITextVIEw? = vIEw as? UITextVIEw textVIEw?.inputAccessoryVIEw = topVIEw // UITextFIEld加确定按钮 let textFIEld:UITextFIEld? = vIEw as? UITextFIEld textFIEld?.inputAccessoryVIEw = topVIEw } // 点击完成 func onClickDone(button: UIbarbuttonItem){ self.vIEw.endEditing(true)// 关闭键盘 } // MARK: - 时间触发器 func changeNSTimer(timer: NSTimer) { let progressVIEw: UIProgressVIEw? = timer.userInfo as? UIProgressVIEw let pageControl: UIPageControl? = timer.userInfo as? UIPageControl if (progressVIEw != nil) { var progress = progressVIEw!.progress progress = progress == 1 ? 0 : progress + 0.01 progressVIEw!.progress = progress self.Title = Nsstring(format: "UIProgressVIEw:%.2f",progress) as String } else if (pageControl != nil) { var currentPage = pageControl!.currentPage currentPage = currentPage == pageControl!.numberOfPages - 1 ? 0 : currentPage + 1 pageControl!.currentPage = currentPage self.Title = "UIProgressVIEw:\(currentPage)" } }}总结
以上是内存溢出为你收集整理的UI基础控件 Swift全部内容,希望文章能够帮你解决UI基础控件 Swift所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)