zoukankan      html  css  js  c++  java
  • iOS开发日记48-详解UIPickerView

    今天博主有一个UIPickerView的需求,遇到了一些困难点,在此和大家分享,希望能够共同进步.

    UIPickerView是一个选择器控件,它比UIDatePicker更加通用,它可以生成单列的选择器,也可生成多列的选择器,而且开发者完全可以自定义选择项的外观,因此用法非常灵活.

    UIPickerView直接继承了UIView,没有继承UIControl,因此,它不能像UIControl那样绑定事件处理方法,UIPickerView的事件处理由其委托对象完成.

        self.viewOfPick=[[UIPickerView alloc]initWithFrame:CGRectMake(100, 0, 200, [UIScreen mainScreen].bounds.size.height)];

        _viewOfPick.dataSource=self;

        _viewOfPick.delegate=self;

    //pickerView默认选中row为0,无线滚动只是在一开始的时候显示row的中间值,造成无线滚动的假象

        [_viewOfPick selectRow:9 inComponent:0 animated:YES];

    //设置pickerView默认选中最后一行

        [_viewOfPick selectRow:9 inComponent:1 animated:YES];

        [self.view addSubview:_viewOfPick];

    //类似tableView的cell for row,根据row和component返回字符串显示

    - (nullable NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component __TVOS_PROHIBITED

    {

        return @"空";

    }

    //类似tableView的didSelect,根据row和component进行具体的传值等操作

    - (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component __TVOS_PROHIBITED

    {

        NSLog(@"*********%ld,%ld",(long)component,row);

    }

    //类似tableView的cell for row,根据row和component返回自定义视图显示

    //注意,同时实现返回NSString 和下面这个 返回UIView的方法,只执行返回UIView的方法

    - (UIView *)pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)row forComponent:(NSInteger)component reusingView:(nullable UIView *)view __TVOS_PROHIBITED

    {

        UIView *blackView=[[UIView alloc]initWithFrame:CGRectMake(0, 0, 10, 10)];

        blackView.backgroundColor=[UIColor blackColor];

        return blackView;

    }

    //返回pickerView的行高

    - (CGFloat)pickerView:(UIPickerView *)pickerView rowHeightForComponent:(NSInteger)component __TVOS_PROHIBITED

    {

        return 40;

    }

    // returns the number of 'columns' to display.component的数量

    - (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView

    {

        return 2;

    }

     

    // returns the # of rows in each component..row的数量

    - (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component

    {

        return 10;

    }

     

     

  • 相关阅读:
    [LeetCode]String主题系列{第5,6题}
    [LeetCode]Math主题系列{第7,9,13,273题}
    [LeetCode]LinkedList主题系列{第2题}
    [LeetCode]HashTable主题系列{第3,36,49,94,136,138,187,202,204,205,290,347,389,409,438,451,463,500,508,560,594,599题}
    由于博客园的道路越来越像CSDN了,已经不再是当年的博客园了,决定退出博客园,后续建立自己的博客站点。
    Revit二次开发——非模态窗口的事件处理
    Revit二开---Schemachema扩展数据
    Revit二开---ViewFamily视图类型枚举
    CAD二开---扩展数据XData
    CAD二开---框选文字批量对齐
  • 原文地址:https://www.cnblogs.com/Twisted-Fate/p/4997212.html
Copyright © 2011-2022 走看看