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

ios - animateWithDuration setFrame 不起作用


                                            <p><p>您好,我有一段代码,只有一行不工作...</p>

<pre><code>[UIView animateWithDuration:0.3 delay:0.0 options:UIViewAnimationOptionCurveEaseOut animations:^{
    ; //working
    ; //not working
    ; //working
} completion:^(BOOL finished) {
    ;
    self.currentLabel = label;
}];
</code></pre>

<p>我想不出什么问题了...</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>我发现:如果我关闭“使用自动布局”,那么它会神奇地工作,所以这个问题与自动布局有关。</p>

<p>经过搜索,我发现:<a href="http://weblog.invasivecode.com/post/42362079291/auto-layout-and-core-animation-auto-layout-was" rel="noreferrer noopener nofollow">http://weblog.invasivecode.com/post/42362079291/auto-layout-and-core-animation-auto-layout-was</a> </p>

<p>为您的 View 添加约束导出映射,然后不使用 setFrame,更新约束就可以解决问题!</p>

<p>下面是我的最终实现(_topConstraint 是表格 View 的顶部垂直空间约束):</p>

<pre><code>- (IBAction)switchButtonTouched:(id)sender
{
    if (_topConstraint.constant &lt;= 0)
      _topConstraint.constant = _buttonView.frame.size.height;
    else
      _topConstraint.constant = 0;

    ;
    [UIView animateWithDuration:0.5f animations:^(void){
      ;
    } completion:^(BOOL finished){
    }];
}
</code></pre></p>
                                   
                                                <p style="font-size: 20px;">关于ios - animateWithDuration setFrame 不起作用,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/18946717/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/18946717/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - animateWithDuration setFrame 不起作用