如何根据标签或类似内容以特定顺序获取UIScrollview中子视图的内容?

时间:2012-11-05 11:15:22

标签: ios xcode uiscrollview subview

如何将视图内的label.text添加到UIScrollview,但按特定顺序,每个标签都有一个连续的标签1,2,3,4,5,这是很重要,因为每个人都需要按顺序保存在一个数组中。

问题是,当使用搜索时,它会以不同的顺序发送标签,我该如何控制?

我的搜索代码是:

for (UIView *addedView in [self.scrollView subviews]){
    for (UIView *sub in [addedView subviews])
    {
        if([sub isKindOfClass:[UILabel class]])
        {
            UILabel *myLabel = (UILabel *)sub;
            [array addObject:mylabel.text];
        }
    } 
}

2 个答案:

答案 0 :(得分:3)

for (int i = 1 ;i <= [self.scrollView.subviews count] ;i++){
        UIView *myView = (UIView *) [addedView viewWithTag:i];

           if(myView && [myView isKindOfClass:[UILabel class]]){
           UILabel *label = (UILabel *)myView;
            [array addObject:label.text]; );
        }
    }

答案 1 :(得分:2)

为什么不根据他们带的标签访问您的观点?

UIView* view = [self.scrollView viewWithTag:tag];

如果迭代已定义的所有标记,则可以控制处理视图的顺序。否则,我怀疑subviews将镜像子视图堆叠顺序。您可以尝试:

for (NSUInteger i = 1; i <= 5; ++i) {
    UIView* view = [self.scrollView viewWithTag:i];
    ...
}

更好的是,您还可以指定标签的标签,然后使用:

for (NSUInteger i = 1; i <= 5; ++i) {
    UIView* view = [self.scrollView viewWithTag:i];
    UILabel* myLabel = (UILabel*)[view viewWithTag:kLabelTag];
    ...
}