我有一个加载一系列单元格的集合视图。一些单元格将具有静态图像(效果很好),但有些可能有多个图像需要可以刷卡。
UICollectionViewCell是基本视图,UIScrollView位于其中(固定在其超级视图的顶部,左侧,底部和右侧)。
将UIImageView添加到滚动视图,我想将其固定到滚动视图的顶部和左侧,但其宽度和高度与集合视图单元格相同,而不是滚动视图的内容大小。
然后我想要将两个附加图像固定到集合视图单元格的顶部,以及左侧最近的视图(在本例中为先前的UIImageView)。
故事板看起来像这样:
(其他图像在屏幕外显示但未显示)。
答案 0 :(得分:0)
我决定通过代码添加图片:
有父视图和滚动视图(附加到IBOutlet)。
CollectionViewCell子类包含:
@synthesize lbl, sv, pageControl;
- (void) awakeFromNib {
sv.userInteractionEnabled = NO;
sv.delegate = self;
pageControl.userInteractionEnabled = NO;
[self.contentView addGestureRecognizer:sv.panGestureRecognizer];
}
- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
CGFloat pageWidth = sv.frame.size.width;
float fractionalPage = sv.contentOffset.x / pageWidth;
NSInteger page = lround(fractionalPage);
self.pageControl.currentPage = page;
}
然后,在View Controller的collectionView:cellForItemAtIndexPath方法中,我手动添加图像,如下所示:
UIImageView *img = [[UIImageView alloc] initWithImage:[UIImage imageNamed:[myArray objectAtIndex:indexPath.row]]];
img.frame = (CGRect) { 0, 0, cell.frame.size.width, cell.frame.size.height};
[cell.sv addSubview:img];
img = [[UIImageView alloc] initWithImage:[UIImage imageNamed:[myArray objectAtIndex:indexPath.row + 1]]];
img.frame = (CGRect) { cell.frame.size.width, 0, cell.frame.size.width, cell.frame.size.height };
[cell.sv addSubview:img];
img = [[UIImageView alloc] initWithImage:[UIImage imageNamed:[myArray objectAtIndex:indexPath.row + 2]]];
img.frame = (CGRect) { cell.frame.size.width * 2, 0, cell.frame.size.width, cell.frame.size.height };
[cell.sv addSubview:img];
[cell.sv setContentSize:CGSizeMake(cell.frame.size.width * 3.0, cell.frame.size.height)];
我本来希望使用StoryBoard / Interface Builder这样做,但就目前而言,这就足够了。