我正在绘制一个包含xib的视图,多次(相同的uiview),然后在每次绘制时更新出口,在出口处显示带有不同字符串的nsmutablearray
单击视图会打开一个应该从视图中显示数据的视图控制器(+更多),除非它不知道它应该显示的数组的哪个索引,否则这个工作完全正常。
我试图找到一种方法来管理它们,我可以看到哪个视图被按下,所以我可以通过那个' id'到新的vc(即使它被绘制的视图相同,也可以唯一地识别视图)
以下是多次绘制视图的方法
- (void) populateUpcoming:(int)events {
[self resetVariables];
upcomingEventsCenterPos = self.view.frame.size.width / 2 - 159;
for (int i = 0; i < events; i++) {
upcomingEventsY2 = 175 * upcomingEvents2;
UIView *firstViewUIView = [[[NSBundle mainBundle] loadNibNamed:@"UpcomingEventFull" owner:self options:nil] firstObject];
[_scrollView addSubview:firstViewUIView];
CGRect frame = firstViewUIView.frame;
frame.origin.y = 9 + upcomingEventsY2;
frame.origin.x = upcomingEventsCenterPos + upcomingEventsX2;
firstViewUIView.frame= frame;
upcomingEvents2++;
UITapGestureRecognizer *singleFingerTap =
[[UITapGestureRecognizer alloc] initWithTarget:self
action:@selector(tapUpcomingEvent:)];
[firstViewUIView addGestureRecognizer:singleFingerTap];
}
[self setupScroll];
}
答案 0 :(得分:0)
我认为您可以使用UITableView
和自定义UITableViewCell
来实现此目的。单击“添加更多”,向NSMutableArray添加一个条目,然后重新加载tableview。
并且无需单独管理索引,您可以通过indexPath.row
此外,您无需管理滚动视图大小,因为tableview会根据行自动调整内容高度。
如果您使用相同的视图,那么请使用此方法,因为它很容易并且可以节省您的时间。