我有UIButton
向右滚动UICollectionView
。该按钮被添加到我UICollectionView
的超级视图中,它漂浮在单元格的顶部。
但我只能让UIAction
发生一次。如何复制操作或刷新按钮以便我可以再次使用它。
这是我的代码:
- (void)viewDidLoad
{
[super viewDidLoad];
UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
button.frame = CGRectMake(910, 345 , 100, 100);
button.backgroundColor = [UIColor purpleColor];
[self.collectionView.superview addSubview:button];
[button addTarget:self action:@selector(changeContentOffset:) forControlEvents:UIControlEventTouchUpInside];
}
- (IBAction)changeContentOffset:(id)sender {
[self.collectionView setContentOffset:CGPointMake(910, -65) animated:YES];
}
答案 0 :(得分:0)
您可以将按钮添加到self.view
或
在- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath
方法您只需将按钮添加到单元格内容视图[cell.contentView addSubview: button];
答案 1 :(得分:0)
如果在IBAction内的行中设置断点,您是否只停留一次?根据您的问题,您希望每次单击该按钮时向右滚动,但您的方法不会这样做。
该方法在您第一次点击按钮时设置contentOffset
的{{1}},但在其他时间,由于UICollectionView
已经移位,您无法看到任何更改。尝试用以下方法替换您的方法:
UICollectionView
答案 2 :(得分:0)
您必须将此方法更改为依赖于collectionView实际位置...
self.collectionView.paginateEnabled = YES;
- (IBAction)changeContentOffset:(id)sender {
float x = cellWidth + self.collectionView.contentOffset.x;
[self.collectionView setContentOffset:CGPointMake(910, x) animated:YES];
}