菜鸟教程小白 发表于 2022-12-13 08:46:34

ios - 更改 UITableViewCell 大小给我一个错误


                                            <p><p>我在 <code>static UITableViewCell</code> 中有一个 <code>UIView</code>。我在 <code>view</code> 中添加了高度 <code>constraint</code>。我认为,动画 <code>views</code> 高度变化的正确方法是这样的:</p>

<pre><code>self.myViewsHeightConstraint.constant = 100; // Coming from 0 and vice versa
[UIView animateWithDuration:0.3f animations:^{
    ;      
}];
</code></pre>

<p>我将 <code>tableView</code> 行高设置为:</p>

<pre><code>tableView.estimatedRowHeight = 40;
self.tableView.rowHeight = UITableViewAutomaticDimension;
</code></pre>

<p>现在我需要更新 <code>cells</code> 高度。所以我认为 <code>begin</code>/<code>endUpdate</code> 是合适的。当 <code>veiw</code> 和 <code>cell</code> 对其高度进行动画处理时,它们不会同步,因此由于它们的动画时间不完全相同,我收到以下警告:</p>

<pre><code>Unable to simultaneously satisfy constraints.
    Probably at least one of the constraints in the following list is one you don&#39;t want. Try this: (1) look at each constraint and try to figure out which you don&#39;t expect; (2) find the code that added the unwanted constraint or constraints and fix it. (Note: If you&#39;re seeing NSAutoresizingMaskLayoutConstraints that you don&#39;t understand, refer to the documentation for the UIView property translatesAutoresizingMaskIntoConstraints)
(
    &#34;&lt;NSLayoutConstraint:0x7f8d62d15670 V:&gt;&#34;,
    &#34;&lt;NSLayoutConstraint:0x7f8d62cea010 tagResultTableView:0x7f8d62d901a0.top == UITableViewCellContentView:0x7f8d62d8fd50.topMargin - 8&gt;&#34;,
    &#34;&lt;NSLayoutConstraint:0x7f8d62cf0760 V:-(8)-&gt;&#34;,
    &#34;&lt;NSLayoutConstraint:0x7f8d62cf0800 UILabel:0x7f8d62d2e2e0&#39;Limit: Up to 5 tags&#39;.bottom == UITableViewCellContentView:0x7f8d62d8fd50.bottomMargin&gt;&#34;,
    &#34;&lt;NSLayoutConstraint:0x7f8d62f726d0 &#39;UIView-Encapsulated-Layout-Height&#39; V:&gt;&#34;
)

Will attempt to recover by breaking constraint
&lt;NSLayoutConstraint:0x7f8d62d15670 V:&gt;
</code></pre>

<p>如果我的逻辑是正确的,我怎么能在同一时间为它们设置动画。或者我怎样才能为它们设置动画,以免出现错误?</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>如果您想确保 Cell 保持静态且不更改,请执行此方法:</p>

<pre><code>- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{}
</code></pre>

<p>并且里面有一个return语句,返回单元格高度的最终值。</p></p>
                                   
                                                <p style="font-size: 20px;">关于ios - 更改 UITableViewCell 大小给我一个错误,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/31152124/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/31152124/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - 更改 UITableViewCell 大小给我一个错误