我在选项卡中有一个UIScrollview,我在UIScrollview中添加了一些UIView(NIB)。每个UIView都有一些UISwictch,标签,按钮等。如何在添加到UIScrollview的视图中获取label.text。
我尝试了很多东西,但我可以访问添加到UIScrollview的UIView的内容。
答案 0 :(得分:9)
检查,
for (UIView *addedView in [self.scrollView subviews])
{
for (UIView *sub in [addedView subviews])
{
if([sub isKindOfClass:[UILabel class]])
{
UILabel *myLabel = (UILabel *)sub;
NSLog(@"My label :%@",myLabel .text);
}
}
}
此处scrollView
是您的滚动视图。它将打印所有标签的文本。
如果您需要打印任何特定标签的文字。然后在其中添加标签并在打印前检查标签,例如if(myLabel.tag == 7)
答案 1 :(得分:5)
为您的标签设置唯一的tag
。
例如:label.tag = 10345
(一些随机数,这是一个唯一标记)
您可以在parentView
中搜索此标签
UILabel *theLabel = (UILabel *)[parentView viewWithTag: 10345];
然后你可以用标签做任何你想做的事。
答案 2 :(得分:0)
第1步:在滚动视图中添加此代码
UITapGestureRecognizer *singleTapGestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(singleTap:)];
singleTapGestureRecognizer.numberOfTapsRequired = 1;
singleTapGestureRecognizer.enabled = YES;
singleTapGestureRecognizer.cancelsTouchesInView = NO;
[scrollView addGestureRecognizer:singleTapGestureRecognizer];
第2步:实施此方法
-(void)singleTap:(UITapGestureRecognizer *)gesture
{
// Convert gesture into view for getting subviews
CGPoint point = [gesture locationInView:mainScrollView];
UIView *tappedView = [mainScrollView hitTest:point withEvent:nil];
// Get the subviews of the view
NSArray *subviews = [view tappedView];
// Return if there are no subviews
if ([subviews count] == 0) return;
for (UIView *subview in subviews) {
NSLog(@"%@", subview);
// List the subviews of subview
[self your_method:subview];
}
}