gpt4 book ai didi

iphone - 显示 CGRect 位置重置我的图像位置

转载 作者:行者123 更新时间:2023-12-01 19:09:05 26 4
gpt4 key购买 nike

我在做一些 CGRect Utils类和函数来帮助我们操作 CGRect 和 View 的框架。

我面临一个非常奇怪的问题。我有一个图像,我可以通过按一些按钮来移动它。

- (IBAction)heightPlusTen:(id)sender {
CGRectAddHeightToView(myView, 10);
}

CGRectAddHeightToView 只是一个#define,它可以被替换为:
- (IBAction)heightPlusTen:(id)sender {
myView.frame = CGRectMake( myView.frame.origin.x,
myView.frame.origin.y,
myView.frame.size.width,
myView.frame.size.height+10 );
}

到目前为止,图像正在移动。一切看起来都很好...
直到我运行这段代码:
- (IBAction)updatePosition:(id)sender {
xLabel.text = [NSString stringWithFormat:@"%.0f", duck.frame.origin.x];
yLabel.text = [NSString stringWithFormat:@"%.0f", duck.frame.origin.y];
wLabel.text = [NSString stringWithFormat:@"%.0f", duck.frame.size.width];
hLabel.text = [NSString stringWithFormat:@"%.0f", duck.frame.size.height];
}

假设在屏幕上显示 x、y、宽度和高度。但相反,它将图像移回它 几乎 初始位置。

我知道很多代码丢失了所以结帐 CGRect Utils on github .

最佳答案

这是导致问题的自动布局。现在您可以一起删除自动布局,或者您可以保留它(以及它的许多好处),但也可以在 xib 加载后立即实例化标签.. 像这样:

// ViewController.m 
-(void)viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];
xLabel.text = [NSString stringWithFormat:@"%.0f", duck.frame.origin.x];
yLabel.text = [NSString stringWithFormat:@"%.0f", duck.frame.origin.y];
wLabel.text = [NSString stringWithFormat:@"%.0f", duck.frame.size.width];
hLabel.text = [NSString stringWithFormat:@"%.0f", duck.frame.size.height];
}

这样,当您将来更新标签时,自动布局就不必重新调整任何内容。

关于iphone - 显示 CGRect 位置重置我的图像位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17905994/

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