如果我明白你的问题,你不想嵌套滚动。 因此设置yourTextView.scrollEnabled = NO; //编程我们做它在笔尖
另外为了显示所有文本设置yourTextView框架高度与其内容高度:
yourTextView.frame = CGRectMake(yourTextView.frame.origin.x,
yourTextView.frame.origin.y,
yourTextView.frame.size.width,
yourTextView.contentSize.height + (yourTextView.contentSize.width > yourTextView.frame.size.width ? (yourTextView.contentSize.width * yourTextView.contentSize.height/(yourTextView.contentSize.width - yourTextView.frame.size.width)) - yourTextView.contentSize.height :0)));
/*
If textView is dynamically filled, you have to check if yourTextView.contentSize.width is bigger than yourTextView.frame.size.width then add proportionally what is remaining to the height.
*/
在结束更改按钮的位置,如果需要:
yourbutton.frame = CGRectMake(yourbutton.frame.origin.x,
yourTextView.frame.origin.y + yourTextView.frame.size.height + 20, //If you want your button to be 20 point after your textView
yourbutton.frame.size.width,
yourbutton.frame.size.height);
希望能帮到你...
我正在使用带有10个不同的UIViewControllers的Tab Controller App。所有10个都有一个超级视图,它为每件事提供实例方法,这些方法基于我在每个IO中为IB设置的标签ID。我的最终目标是制作超长可滚动UIView(带有图像,文本和按钮)对于每个UIViewController以及要在IB内设置的UIView的内容。我可能无法避免它,但我想避免以编程方式设置每个UIView的内容 –
好吧,如果你想要实现这种液体布局,你需要以编程方式进行,除非你可以使用UIWebView和HTML/CSS为您的内容。恐怕你必须使用我的答案并使用我上面描述的方法以编程方式调整布局,从具有可变高度的第一个元素开始。 – ashack
刚刚有另一个想法(基于StackOverflow的另一位读者......如何在项目中嵌入样式化文本文件并将其加载到UIView中......可以在一个位置完成所有操作,即我的超级视图viewDidLoad,因为我的UIView的-viewDidLoad只是在它调用我的超级视图的-viewDidLoad之前做了一件事,并且一件事是以NSString的形式分配一个唯一的viewControllerID * –