UI基础控件 Swift

UI基础控件 Swift,第1张

概述//// DefaultShowVC.swift// Swift-UI//// Created by yangjun on 15/6/15.// Copyright (c) 2015年 阳君. All rights reserved.//import UIKit/** 样式*/enum DefaultShowStyle : Int { case UILable
//// 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所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1084234.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-27
下一篇 2022-05-27

发表评论

登录后才能评论

评论列表(0条)

保存