iOS开发中的错误整理,关于用绑定Tag取控件的注意事项,有时候不绑定也是个错!
2016-05-12 22:07
489 查看
如图:红色框中是个自定义的导航工具条titlesView(没有绑定Tag),工具条中有五个按钮(按钮绑定了Tag)以及一个红色的指示器indicatorView(没有绑定Tag),下面的蓝色是可以滚动的scrollView,拖动scrollView,红色指示器会滚到对应按钮的下面,并且按钮呈红色显示.
View Code
- (void)setupTitlesView { CGFloat width = self.view.width; CGFloat height = 35; UIView *titlesView = [[UIView alloc] init]; titlesView.frame = CGRectMake(0, 64, width, height); titlesView.backgroundColor = [UIColor colorWithRed:1.0 green:1.0 blue:1.0 alpha:0.6]; titlesView.tag = -1; // scroll滚动完后要通过按钮绑定的tag,得到按钮并设置按钮属性,如果父控件中子控件不止有按钮,别的view的tag不绑定默认也是0,当通过tag==0找按钮的时候,就会报错.所以这里的解决办法是讲其余view绑定别的tag [self.view addSubview:titlesView]; self.titlesView = titlesView; // 添加指示器 UIView *indicatorView = [[UIView alloc] init]; indicatorView.backgroundColor = [UIColor redColor]; indicatorView.height = 2; indicatorView.y = titlesView.height - indicatorView.height; indicatorView.tag = -2; // 理由同上,不设置也可以,但是要保证这些view的添加要添加到按钮的后面 [titlesView addSubview:indicatorView]; self.indicatorView = indicatorView; NSArray *items = @[@"全部",@"视频",@"音频",@"图片",@"段子"]; CGFloat btnW = titlesView.width / items.count; CGFloat btnH = titlesView.height; CGFloat btnX = 0; CGFloat btnY = 0; // 循环添加按钮 for (int i = 0; i < items.count; i++) { UIButton *btn = [[UIButton alloc] init]; btnX = btnW * i; btn.frame = CGRectMake(btnX, btnY, btnW, btnH); [btn setTitleColor:[UIColor grayColor] forState:UIControlStateNormal]; [btn setTitleColor:[UIColor redColor] forState:UIControlStateDisabled]; [btn setTitle:items[i] forState:UIControlStateNormal]; btn.titleLabel.font = [UIFont systemFontOfSize:14]; btn.tag = i; // 给按钮添加绑定tag [btn addTarget:self action:@selector(titleClick:) forControlEvents:UIControlEventTouchUpInside]; [titlesView addSubview:btn]; [btn layoutIfNeeded]; if (i == 0) { self.selectedButton = btn; btn.enabled = NO; // 以后设置尺寸,先设置尺寸,再设置点 self.indicatorView.width = btn.titleLabel.width; self.indicatorView.centerX = btn.centerX; } } }
View Code
相关文章推荐
- ios最简单的播放音频程序
- iOS开发中的错误整理,(百思项目,指示器位置)设置控件尺寸和点坐标,先设置尺寸,再设置点坐标
- 一篇文章看懂iOS代码块Block
- iOS 文件直接从别的工程拖过来导致的问题
- cordova+ios插件
- cordova+ios插件
- ios最简单的录音程序
- iOS开发笔记--Cell选中时候上面View看不见
- 根据Url 获取图片尺寸 iOS
- IOS流媒体研究— 前言
- 修正ios h5上传图时的图片方向问题
- ios 在复杂的cell里面定时器会很慢
- iOS最常用类库管理工具CocoaPods的安装使用
- iOS 录音
- iOS 播放音乐
- [绍棠]获取视频的第一帧图片或某一帧图片
- IOS 播放音效
- ios开发——基本控件与变量(数据)的关联与使用
- 值得安利的iOS开发利器
- iOS一些常用的判断条件