iOS 8 – UIScrollView 与具有动态高度的 child
<p><p>我在使用包含多个 subview 的 <code>UIScrollView</code> 时遇到问题。其中一个具有根据文本长度动态计算的高度,并在其变得更高时将下面的内容向下推。</p>
<p>这是这个应用的安卓版本截图:</p>
<p> <img src="/image/Ik4nC.png" alt="Android version"/> </p>
<p>绿色标题下的描述 View 是描述超过一行时改变高度的 View 。这意味着我不能在所有 View 上使用高度约束,这似乎是 <code>UIScrollView</code> 在 Storyboard 中使用自动布局时起作用的原因。</p>
<p>从包含多个 subview 的 Storyboard 中将 <code>UIScrollView</code> 放入 <code>UIViewController</code> 的最佳方法是什么,如上面的屏幕截图,<strong>可以在所有屏幕宽度(iPhone 4、iPhone 5、iPhone 6 等)上</strong>,并允许 View 在保持其相对于其他 View 的位置的同时改变高度?</p>
<p>这就是我的 Storyboard和这个特定的 ViewController 的样子:</p>
<p> <img src="/image/zWT1n.png" alt="Storyboard layout"/> </p></p>
<br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
<p><p>执行此操作的“iOS 方式”是使用 <code>UITableViewController</code>(它又是 <code>UIScrollView</code> 子类)。</p>
<p>您可以使用 Storyboard和原型(prototype)单元轻松创建一个。</p>
<p>至于高度,您可以使用引用 <code>UILabel</code> 并在 TableView 委托(delegate)的 <code>tableView:heightForRowAtIndexPath:</code> 上返回其 <code>textRectForBounds:limitedToNumberOfLines:</code> , 传递 <code>0</code> 作为行数。</p>
<p>您也可以查看<a href="https://github.com/CyberAgent/AMBTableViewController#features" rel="noreferrer noopener nofollow">this library</a>我们使用以及它如何处理<a href="https://github.com/CyberAgent/AMBTableViewController/blob/master/Demo/TableDemo/PEPhotosDetailViewController.m#L170" rel="noreferrer noopener nofollow">dynamic heights</a> .</p></p>
<p style="font-size: 20px;">关于iOS 8 – UIScrollView 与具有动态高度的 child ,我们在Stack Overflow上找到一个类似的问题:
<a href="https://stackoverflow.com/questions/26474099/" rel="noreferrer noopener nofollow" style="color: red;">
https://stackoverflow.com/questions/26474099/
</a>
</p>
页:
[1]