首页 > 其他分享 >Swift基础之PickerView(时间)选择器

Swift基础之PickerView(时间)选择器

时间:2022-11-28 17:02:17浏览次数:43  
标签:PickerView return datePick self init let func Swift 选择器


代码讲解:(后面有额外代码讲解)

首页设计UIPickerView的样式设计:

leftArray = ["花朵","颜色","形状"];
        
        let array1 = ["茉莉","玫瑰","郁金香","紫罗兰"];
        let array2 = ["红色","黄色","黑色","白色","紫色"];
        let array3 = ["圆形","方形","椭圆形"];
        righArray = [array1,array2,array3];
        
        let pickerV = UIPickerView.init(frame: CGRectMake(0, 100, self.view.frame.size.width, 260));
        //pickerV.backgroundColor = UIColor.brownColor();
        //设置是否显示选中状态
        pickerV.showsSelectionIndicator = true;
        //设置代理
        pickerV.dataSource = self;
        pickerV.delegate = self;
        self.view.addSubview(pickerV);
        
        let btn = UIButton.init(frame: CGRectMake(40, 380, F_Device_W()-40*2, 40));
        btn.setTitle("时间选择器", forState: UIControlState.Normal);
        btn.backgroundColor = UIColor.cyanColor();
        btn.layer.cornerRadius = 5;
        self.view.addSubview(btn);
        btn.addTarget(self, action: #selector(btnClick), forControlEvents:.TouchUpInside);

添加代理,执行必要的代理方法:

//MARK:---必须要实现的UIPickerViewDatasource的方法
    //返回几个分区
    func numberOfComponentsInPickerView(pickerView: UIPickerView) -> Int {
        return 2;
    }
    //返回各分区行数
    func pickerView(pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
        if (component == 0)
        {
            return leftArray.count;
        }
        else
        {
            //获取选中第0分区的哪一行
            let row1 = pickerView.selectedRowInComponent(0);
            //然后根据获取的行号获取第1分区所对应的数据
            let arrarY = righArray.objectAtIndex(row1);
            return arrarY.count;
        }
    }

时间选择器UIDatePicker

//UIDatePicker时间选择器,继承于UIControl
        let datePick = UIDatePicker.init(frame: CGRectMake(0, 80, self.view.frame.size.width, 300));
        //设置显示时间样式,中or英,默认英文显示样式
        datePick.locale = NSLocale.init(localeIdentifier: "zh_CN");//中文
        datePick.backgroundColor = UIColor.lightGrayColor();
        //设置显示类型
        datePick.datePickerMode = UIDatePickerMode.DateAndTime;//日期和时间
        //设置默认的日期
        datePick.date = NSDate.init();
        //设置可以选择的最小日期
        datePick.minimumDate = NSDate.init(timeIntervalSinceNow: -(60*60*24*7));
        //设置可以选择的最大日期
        datePick.maximumDate = NSDate.init(timeIntervalSinceNow: 60*60*24*7);
        //添加方法获取显示的日期值
        datePick.addTarget(self, action: #selector(changeValueDate), forControlEvents: .ValueChanged);
        self.view.addSubview(datePick);
        
        
        dateLabel = UILabel.init(frame: CGRectMake(40, 390, self.view.frame.size.width-80, 50));
        dateLabel.textColor = UIColor.blueColor();
        dateLabel.textAlignment = NSTextAlignment.Center;
        self.view.addSubview(dateLabel);
        
    }
    
    func changeValueDate(datePickerV:UIDatePicker) {
        //获取当前选中的时间
        let dateE = datePickerV.date;
        
        //转换时间格式
        let formatterR = NSDateFormatter.init();
        formatterR.dateFormat = "yyyy-MM-dd hh:mm:ss";
        
        let dateStr = formatterR.stringFromDate(dateE);
        
        dateLabel.text = dateStr;
    }

额外代码讲解:

//MARK:---值得注意的是,Swift中没有了宏定义define,可以将宏定义写成func 方法进行调用
    //如:获取屏幕的宽  高方法
    func F_Device_W() -> CGFloat {
        return UIScreen.mainScreen().bounds.size.width;
    }
    func F_Device_H() -> CGFloat {
        return UIScreen.mainScreen().bounds.size.height;
    }
    
    //设置RGBA宏方法
    func RGBA (r:CGFloat, g:CGFloat, b:CGFloat, a:CGFloat) -> UIColor {
        return UIColor (red: r/255.0, green: g/255.0, blue: b/255.0, alpha: a);
    }
    
    //判断系统版本方法,方法的使用:如:navBar = UIView(frame: CGRectMake(0, 0, 320, IS_IOS7() ? 64:44))//三元运算
    func IS_IOS7() ->Bool { return (UIDevice.currentDevice().systemVersion as NSString).doubleValue >= 7.0;
    }
    func IS_IOS8() -> Bool { return (UIDevice.currentDevice().systemVersion as NSString).doubleValue >= 8.0;
    }

结果显示:

Swift基础之PickerView(时间)选择器_ico

        

Swift基础之PickerView(时间)选择器_UIDatePicker_02

标签:PickerView,return,datePick,self,init,let,func,Swift,选择器
From: https://blog.51cto.com/u_15894905/5892269

相关文章

  • Swift基础之仿资讯类实现频道的长按拖拽/删除/增加
    导读简单用Swift写了一个collectionview的拖拽点击排序效果;拖拽排序是新闻类的App可以说是必有的交互设计,如今日头条,网易新闻等。效果效果主要代码手势长按移动1.......
  • Swift基础之设计折线坐标图
    最近添加了折线视图的样式,所以在这里用Swift语言重新再使用设计一下首先设置纵坐标的数值是:体重//体重       letweightLabel=UILabel.init(frame:CGRectMake(0......
  • Swift 周报 第十七期
    前言本期是Swift编辑组自主整理周报的第八期,每个模块已初步成型。各位读者如果有好的提议,欢迎在文末留言。欢迎投稿或推荐内容。目前计划每两周周一发布,欢迎志同道合的朋......
  • Angular样式隔离(style isolation)及选择器(:host, :host-context, ::ng-deep)的使用
    1.Angular样式隔离Angular样式隔离的好处最最要的一条就是CSS的可维护性。当没有样式隔离时,我们创建一个组件并添加样式后,可能会影响到其他的组件样式,而且很有可能查找不......
  • element-ui日期选择器默认展示时间
    <el-date-pickerv-model="ruleForm.dateValue"value-format="yyyy-MM-dd":picker-options="pickerOptions"type="date"size="small......
  • 安卓中 选择器属性的使用,注意事项
       处理android:state_activity同一个界面出现需要同时选择两个焦点的时候,用到我们在定义一个drawable的时候可以通过xml定义的drawable对象。它使得一个图片能在不同......
  • element-ui 修改时间日期选择器el-date-picker样式
    前言最近在工作中用到了element-ui的el-date-picker日期时间选择器。修改样式的时候,属实花了一些时间。因为el-date-picker是挂在body下的,使用/deep/改不掉。所以把我用......
  • 【爬虫】bs4搜索文档,css选择器,selenium基本使用
    目录1.bs4搜索文档树1.1字符串:可以按照标签名,属性名查找1.2正则表达式标签名,属性可以使用正则匹配1.3列表标签名,属性名等于列表或条件1.4True标签名,属性名......
  • 三、伪类选择器
    伪类(不存在的类,特殊的类)-——伪类哟买回来,描述一个元素的特殊状态比如:第一个元素、被点击的元素、鼠标移入的元素....-——伪类一般情况使用冒号开头:first-child......
  • 六、元素选择器
    伪元素,表示网页中一些特殊的并非真实存在的元素(特殊的位置)为元素使用::开头::first-letter表示第一个字母::first-lin表示第一行::selection表示选中的内容::be......