2013-06-28 21 views
1

我想添加一个textViewtextFieldsubViews到我的scrollViewscrollView显示很好和绿色,但textViewtextField对象没有显示在scrollView内部。Textfields/TextViews不会添加到滚动视图iOS

这是一次将我的相机设备上可扫描的条形码

- (void) readerView: (ZBarReaderView*) view 
    didReadSymbols: (ZBarSymbolSet*) syms 
      fromImage: (UIImage*) img 
{ 
    // do something useful with results 
    for(ZBarSymbol *sym in syms) { 
    self.symbolData = (NSString*)sym.data; 
    UITextField *textField = [[UITextField alloc] initWithFrame:CGRectMake(10, 200, 20, 20)]; 
    UITextView *textView = [[UITextView alloc] initWithFrame:CGRectMake(30, 240,20,20)]; 
    UIScrollView *scrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(10, 200, 300, 80)]; 
    [textField setBackgroundColor:[UIColor redColor]]; 
    [scrollView setBackgroundColor:[UIColor greenColor]]; 
    [textView setBackgroundColor:[UIColor purpleColor]]; 
    textView.text = self.symbolData; 
    [self.view addSubview:scrollView]; 
    [scrollView addSubview:textField]; 
    [scrollView addSubview:textView]; 

    break; 
    } 
} 

,此方法被调用的方法。

我也在这个网站上看到很多类似的问题,我的代码看起来像我所见过的问题的答案,但我无法弄清楚为什么它不工作。

在此先感谢

+0

这是一个问题,您的滚动视图只有80像素高,但您添加到它的视图具有200和240的y坐标?默认情况下,滚动视图剪辑到边界,所以如果它们离开滚动视图的屏幕,您将永远不会看到您的子视图。 – Putz1103

+0

是的,这是问题所在。我知道这是愚蠢的。谢谢! –

回答

0

添加我的评论作为答案。

您的滚动视图只有80个单位高。您要添加的子视图的y坐标为200和240,因此它们不在scrollview的可见高度。默认情况下,滚动视图被设置为剪辑到边界,所以超出边界的任何内容都将不可见。

0

只需更换你的这三条线

[self.view addSubview:scrollView]; 
[scrollView addSubview:textField]; 
[scrollView addSubview:textView]; 

随着

[scrollView addSubview:textField]; 
[scrollView addSubview:textView]; 
[self.view addSubview:scrollView]; 

第一子视图添加到滚动视图然后添加滚动视图到 视图。或全局定义您的scrollView。

相关问题