以编程方式绘制的UIView标签(或类似的东西)

时间:2016-06-13 11:57:49

标签: objective-c

我正在绘制一个包含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];
}

1 个答案:

答案 0 :(得分:0)

我认为您可以使用UITableView和自定义UITableViewCell来实现此目的。单击“添加更多”,向NSMutableArray添加一个条目,然后重新加载tableview。 并且无需单独管理索引,您可以通过indexPath.row

直接获取索引

此外,您无需管理滚动视图大小,因为tableview会根据行自动调整内容高度。

如果您使用相同的视图,那么请使用此方法,因为它很容易并且可以节省您的时间。