繁体   English   中英

将UITextView作为子视图添加到UIView中,然后添加到UIScrollView中

[英]Adding UITextView as subview in UIView then to UIScrollView

我有一个UIViewControllerContentViewController )连接到View xib。 我将TextView放在UIView ,它在IB的层次结构中显示为子视图。
ContentViewController有一个标签作为出口,该标签连接到ContentView.xib上的标签。 执行下面的代码时,第一个视图显示文本视图,但滚动浏览其他视图/页面仅显示标签。

for(int i=0; i< 5; i++){
  ContentViewController *contentView = [[ContentViewController alloc] initWithNibName:@"ContentView" bundle:[NSBundle mainBundle]]; 
  [contentView loadView];
  contentView.theLabel.text =[NSString stringWithFormat:@"hello again..%d", i];
  [self.scrollView addSubview:contentView.view];
}

我可以将按钮或文本字段拖到IB中的视图上,当我滚动浏览页面时,它们都在那里。 上面的文本也设置在标签上。 第一页后,textview消失。 我也无法设置其文字。 我已经将一个新的textview拖动到UIView上,并且它也将在第一页之后消失。 我需要对textview做些不同的事情吗?


我发现UIScrollView在每个页面上。 如果我垂直滑动滚动视图所在的位置,将显示文本。 但是我必须对第一个之后的所有滚动视图执行此操作。

但是,一旦我滑动它们,文本将保持可见,直到重新启动该应用程序为止。 如果没有足够的文字引起滚动,则textview将永远不会出现。 对这种行为有什么建议吗?

尝试:

[textView setNeedsDisplay];


原始答案

您不必以不同的方式处理textview。

我首先担心您会调用“ loadview”。 您永远不应直接致电给您。 需要时会自动调用它。

另外,您应该在循环之前声明contentview,并且正在泄漏内存。

另一个问题是,在循环期间您永远都不会更改每个视图的框架。 它们的原点均为{0,0}。 据我从您的代码可以看到的。 这就是为什么您的视图被隐藏的原因。

最后,在样式说明上,我不会称我为视图控制器XXXXXview,它们应该包含单词controller。

    CGRect frame;
    ContentViewController *myContentViewController = nil;

    for(int i=0; i< 5; i++){
      myContentViewController = [[myContentViewController alloc] initWithNibName:@"ContentView" bundle:[NSBundle mainBundle]];

      frame = myContentViewController.view.frame;
      frame.origin.x=(frame.size.width*i);
      myContentViewController.view.frame=frame; 

      myContentViewController.theLabel.text =[NSString stringWithFormat:@"hello again..%d", i];
      [self.scrollView addSubview: myContentViewController.view];
      [myContentViewController release];
    }

要添加:还请检查scrollviews contentView框架属性:

scrollView.contentSize = CGSizeMake(numberOfContentViews*contentViewWidth, contentViewHeight);

要添加更多:

尝试以编程方式在viewDidload或viewDidAppear中添加textView,以查看是否可行。

在您发表评论之后,如果我不得不再猜测一次,我会说您可能在添加了textView之后在代码中的其他地方进行操作。 开始注释掉任何会影响textView的行,然后看看会发生什么。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM