gpt4 book ai didi

ios - 更新 View 的框架保持约束

转载 作者:行者123 更新时间:2023-11-29 12:11:07 25 4
gpt4 key购买 nike

简单的说,看下面的图片:

  1. 我设计了一个 View ,将约束置于左上右下。它在更改 View 方向时正常工作。

Base

  1. 放一段简单的代码来改变 View 高度:

    //代码

    -(BOOL)textFieldShouldReturn:(UITextField *)textField
    {
    self.view.translatesAutoresizingMaskIntoConstraints = NO;

    CGRect updateViewFrame = self.updatingView.frame;
    updateViewFrame.size.height = textField.text.floatValue;
    self.updatingView.frame = updateViewFrame;

    [self.view setNeedsLayout];

    return YES;
    }

???为什么SO中的代码格式乱七八糟?

Result

我应该如何在代码中使 UITextfield 与 View 的高度一起向上移动,而不直接更改 textField 的框架?更改 View 的框架后,我的自动布局约束不再起作用。

其他说明:1. containerView是scrollView,不用担心长高。2. 我问是否有一种无需直接更改 UITextField 的框架即可工作的方法,因为稍后我将添加更多 View 和控件。如果我必须为每个控件更新框架,这可能会造成困惑:(

最佳答案

如果您想在 Interface Builder 中创建自动布局约束,您可以为它们创建 IBOutlets,方法与 View 、按钮等相同。然后您可以更改此类约束的常量和动画/刷新 View :

@interface ViewController ()

@property (weak, nonatomic) IBOutlet NSLayoutConstraint *topSpace;

@end

@implementation ViewController

- (void)someMethod {

self.topSpace.constant = 60;

[UIView animateWithDuration:1 animations:^{
[self.view layoutSubviews]; //just this line if you don't want the animation
}];

}

@end

手动设置框架会打破所有链接到该 View 的约束。

关于ios - 更新 View 的框架保持约束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33412566/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com