[英]Adding UITextView as subview in UIView then to UIScrollView
我有一个UIViewController
( ContentViewController
)连接到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.