你这里面有个问题。你是通过Tap来访问View的,第一个可以是因为Tap被付给了View,所以你能访问到View,你通过thumbnailsTapview得到的其实就是downImgView。
而第二个,你先访问thumbnailsTapview,这个时候thumbnailsTap的view还没有任何值呢,其实是个nil,你当然设置不成功了。其实你完全可以直接通过downImgViewtag来设置的,而不需要通过tap间接访问。
UIView的tag能帮助你寻找它的子视图。比如你有一个UIView,这个UIView含有一个Button,而创建Button时用的是临时变量,你没有这个Button的引用,在这种情况下,你如果想访
为了实现自定义cell按钮选择问题,花了几个小时,在此记录分享一下:
平时iOS开发中,经常遇到自定义cell问题,tableView使用cell时候由于cell是复用的,所以cell中的按钮等控件也会被复用,不能直接在cell中self方式引用控件来判断对应的控件唯一性,由于tableView刷新或者重用会导致使用混乱问题,cell中使用的控件不是唯一的!!!只有在控制器中进行引用和判断才是唯一的!!!
效果图:
如图自定义cell会重用按钮:
流程如下:
1自定义cell布局按钮设置选择状态:
2设置cell大小按钮,并设置按钮的点击事件传递tag,通过代理传值给控制器
3第三个数据源方法将indexPathrow的值赋值给cell的按钮的tag
4模型添加属性记录按钮选择状态
5自定义代理方法通过tag找到对应模型,模型选择属性取反
6根据是否为选择的cell设置模型的选择属性
7获取对应数据
我已经很尽力把每步都写的够详细,不好之处,还望海涵☺️
需要给每一个cell设置不同的identifier,而不是tag
重用机制是根据相同的标识符来重用cell的,标识符不同的cell不能彼此重用。于是我们将每个cell的标识符都设置为不同,就可以避免不同cell重用的问题了。
- (UITableViewCell )tableView:(UITableView )tableView cellForRowAtIndexPath:(NSIndexPath )indexPath
{
NSString CellIdentifier = [NSString stringWithFormat:@"Cell_%d_%d", indexPathsection, indexPathrow];//比如以indexPath来唯一确定cell
UITableViewCell cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; //出列可重用的cell
if (cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
}
//其他代码
return cell;
}
以上就是关于IOS addGestureRecognizer设置tag问题全部的内容,包括:IOS addGestureRecognizer设置tag问题、怎么获取UIView上所有的Button的tag值、iOS开发tableView自定义cell选择重用解决等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)