Lit*_*T.V 23 ipad ios uicollectionview uicollectionviewcell
我创建了一个UICollectionViewCell由笔尖和里面添加一个按钮,并创建了一个h和.m文件添加类的碎粒file's owner.然后在.M写了一个按钮动作经由出口连接它.
集合视图填充正常,但无法触发按钮操作.我认为收集单元的代表被调用.
我怎样才能获得按钮动作?
hai*_*der 90
我也有这个问题.没有子视图会收到触摸事件.虽然Scott K的解决方法确实有效,但我仍然觉得有些不对劲.所以我又看了一下我的笔尖,注意到我用来创建UICollectionViewCell的原始子视图是一个UIView.即使我将类更改为UICollectionViewCell的子类,XCode仍然认为它是UIView,因此您在contentView中看到的问题没有捕获触摸事件.
为了解决这个问题,我通过确保拖动UICollectionViewCell对象并将所有子视图移动到那个来重新编写nib.之后,触摸事件开始对我的单元格的子视图起作用.
可以指示您的笔尖是否配置为UICollectionViewCell,请查看高级视图的图标.

如果它看起来不像这样,那么它可能会解释错误的触摸事件.
Sco*_* K. 11
当您UICollectionViewCell通过笔尖创建时,笔尖的内容不会添加到单元格的contentView中 - 它将全部直接添加到UICollectionViewCell.似乎没有办法让Interface Builder将nib中的顶级视图识别为a UICollectionViewCell,因此"自动"内的所有内容都会添加到contentView中.
正如sunkehappy指出的那样,任何你想要接收触摸事件的东西都需要进入contentView.它已经为您创建,因此您可以做的最好的事情是以UIButtonawakeFromNib时间以编程方式将您移动到contentView.
-(void)awakeFromNib {
[self.contentView addSubview:self.myButton];
}
Run Code Online (Sandbox Code Playgroud)
要配置单元格的外观,请将显示数据项内容所需的视图添加为contentView属性中视图的子视图.不要直接将子视图添加到单元格本身.该单元管理多个内容层,其内容视图仅为一个.除内容视图外,单元格还管理两个背景视图,这些视图以选定和未选定的状态显示单元格.
您可以awakeFromNib像这样添加按钮:
- (void)awakeFromNib
{
UIButton *button = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, 50, 50)];
[button addTarget:self action:@selector(buttonClicked:) forControlEvents:UIControlEventTouchUpInside];
[self.contentView addSubview:button];
}
- (void)buttonClicked:(id)sender
{
NSLog(@"button clicked");
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
27389 次 |
| 最近记录: |