菜鸟教程小白 发表于 2022-12-12 19:20:26

ios - 键盘显示时self.view设置框架不起作用


                                            <p><p>我遇到了一个问题——当键盘显示时,我的代码将设置 ViewController 的 View 框架大小,因此通过约束设置,所有组件都将位于正确的位置。然而,有时它会像左图一样工作,但如果我从某些特定点进入这个 ViewController ,它看起来就像右图。 </p>

<p> <a href="/image/r0aQc.png" rel="noreferrer noopener nofollow"><img src="/image/r0aQc.png" alt="enter image description here"/></a> </p>

<p>这是我检测到键盘出现时的代码..</p>

<pre><code>- (void)moveTextViewForKeyboard:(NSNotification*)aNotification
                         up:(BOOL)up {

NSDictionary* userInfo = ;
NSTimeInterval animationDuration;
UIViewAnimationCurve animationCurve;
CGRect keyboardEndFrame;

[ getValue:&amp;animationCurve];
[ getValue:&amp;animationDuration];
[ getValue:&amp;keyboardEndFrame];

;
;
;

CGRect keyboardFrame = ;

CGRect viewFrame = self.view.frame;
CGRect screenRect = [ bounds];
CGFloat screenHeight = screenRect.size.height;

if (up) {
    viewFrame.size.height = screenHeight - (keyboardFrame.size.height) - viewFrame.origin.y;
} else {
    viewFrame.size.height = screenHeight;
}

;

;
</code></pre>

<p>}</p>

<p>我已经在这里搜索了几天...仍然没有运气:(有专家可以提供帮助吗?提前谢谢。</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>如果您使用自动布局,则不应手动设置框架,因为它可能不会更改界面或可能会弄乱您的 UI。<br/> 创建对一个或多个约束的引用,更改它们的 <code>constant</code> 属性以适应键盘更改,然后使用 <code>setNeedsLayout</code> 和 <code>-layoutIfNeeded</code></p> 要求自动布局更新布局</p>
                                   
                                                <p style="font-size: 20px;">关于ios - 键盘显示时self.view设置框架不起作用,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/36491093/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/36491093/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - 键盘显示时self.view设置框架不起作用