免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1343 | 回复: 0
打印 上一主题 下一主题

[iOS] IOS自制类似于下拉框的控件 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2015-06-01 10:27 |只看该作者 |倒序浏览
第一步:新建工程XiaLaKuang(名字比较俗,新建方法不再比比。。。)

第二步:操作main.storyboard

     ——》拖拽一个UIButton(命名Title为“吨”,background为“light gray”,Alignment中的Horizonal选择靠左),再拖拽一个UIImage的图像为三角箭头的图片,使按钮看起来想一个下拉框;

           注:将来点击这个按钮会弹出选择器,选择内容后,会将按钮的Title更改为我们选择的内容;



   ——》再拖拽一个Toolbar、PickerView控件到按钮的下方(稍微小一点,毕竟我们选择的东西就很少),再往Toolbar上拖拽一个Item控件更名为“完成”,也可以再往Item的左侧拖拽一个Flexible space使“完成”按钮在右侧;再将Toolbar和PickerView的Hidden勾选;

完成后的效果图如下:


第三步:连线(控件与ViewController.m之间)

   ——》UIButton连接两根线,一根Outlet“Button”,一根Action“BtnAction”;

   ——》Toolbar一根Outlet“Toolbar”;

   ——》UIPickerView一根Outlet“Picker”;

   ——》Toolbar上的“完成”按钮连一根Action“selectedAction”;

   ——》给PickerView连接dataSource和delegate;(方法和UITableview显示列表数据时的连线方法一样,看我的上上篇博客)



第四步:编码
  1. #import "ViewController.h"

  2. @interface ViewController ()<UIPickerViewDelegate,UIPickerViewDataSource>
  3. @property (weak, nonatomic) IBOutlet UIButton *danweiBtn;
  4. - (IBAction)BtnAction:(id)sender;

  5. @property (weak, nonatomic) IBOutlet UIToolbar *Toolbar;
  6. @property (weak, nonatomic) IBOutlet UIPickerView *Picker;
  7. - (IBAction)selectedAction:(id)sender;

  8. @property (nonatomic, strong) NSArray *danwei;
  9. @end

  10. @implementation ViewController

  11. - (void)viewDidLoad {
  12.     [super viewDidLoad];
  13.     // Do any additional setup after loading the view, typically from a nib.
  14.     _danwei = [NSArray arrayWithObjects:@"吨",@"方",@"件", nil];
  15. }

  16. - (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView
  17. {
  18.     return 1;
  19. }

  20. - (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component
  21. {
  22.     return _danwei.count;
  23. }

  24. - (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component
  25. {
  26.     return [_danwei objectAtIndex:row];
  27. }

  28. - (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component
  29. {
  30.     [self.danweiBtn setTitle:[_danwei objectAtIndex:row] forState:UIControlStateNormal];
  31. }

  32. - (void)didReceiveMemoryWarning {
  33.     [super didReceiveMemoryWarning];
  34.     // Dispose of any resources that can be recreated.
  35. }

  36. - (IBAction)BtnAction:(id)sender {
  37.     self.Picker.hidden = NO;
  38.     self.Toolbar.hidden = NO;
  39. }
  40. - (IBAction)selectedAction:(id)sender {
  41.    
  42.     self.Picker.hidden = YES;
  43.     self.Toolbar.hidden = YES;
  44. }
  45. @end
复制代码
最终效果图:
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP