タブにUIScrollviewがあり、UIScrollviewにUIView(NIB)を追加しました。各UIViewには、いくつかのUISwictch、ラベル、ボタンなどがあります。UIScrollviewに追加されたビュー内のlabel.textを取得するにはどうすればよいですか。
多くのことを試しましたが、UIScrollviewに追加されたUIViewのコンテンツにアクセスできます。
タブにUIScrollviewがあり、UIScrollviewにUIView(NIB)を追加しました。各UIViewには、いくつかのUISwictch、ラベル、ボタンなどがあります。UIScrollviewに追加されたビュー内のlabel.textを取得するにはどうすればよいですか。
多くのことを試しましたが、UIScrollviewに追加されたUIViewのコンテンツにアクセスできます。
これで確認してください、
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)
tag
ラベルに一意を設定します。
例:(label.tag = 10345
一意のタグである乱数)
parentView
このようにラベルを検索できます
UILabel *theLabel = (UILabel *)[parentView viewWithTag: 10345];
その後、ラベルを使用して好きなことを行うことができます。
ステップ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];
}
}