gpt4 book ai didi

每当触发一个 Action 时,IOS View 就会更新为默认的 IB 布局

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

我有一个项目,其大部分布局逻辑都在 IB 中。有些定位我想动态更新所以放在viewDidAppear中:

- (void)viewDidAppear:(BOOL)animated{
// Fill array of button tools
buttonArray = [[NSArray alloc] initWithObjects:
self.filterButton, self.bulgeButton, self.stickerButton, self.textButton, self.drawButton, self.invertedBulgeButton, nil];

// Position button tools
int const X_POSITION = 175; // The x position of the tool buttons
int yPosition = 0; // The x position of the tool buttons
CGRect frame = CGRectMake(X_POSITION, yPosition, 100, 100); // The position and size of the tool buttons

// Loop through buttons and set properties
for (UIButton *button in buttonArray) {
frame.origin.y = yPosition;
button.frame = frame;
yPosition += 75;
button.hidden = false;
}
}

我遇到的问题是,每当我按下另一个按钮时,我在 viewDidAppear 中应用的所有格式都会被撤消,并且按钮位置会更改为它们在 IB 中的位置。如何防止我的按钮移动到 IB 中设置的位置?

编辑:下面是一些会导致定位改变的代码:

// Undoes most recent edit to photo
- (IBAction)undoButtonPress:(id)sender {
[self undoImage];
}

- (void)undoImage {
// TODO: Add all the other current actions.... none of them work because they need to be checked for here
// Remove tools for the current action
self.imageSticker.image = nil;
[self refreshImageText];

currentAction = NONE;
self.mainImage.image = [_images pop];

}
// after done editing the text, this resets the text fields so you can create a second text
- (void) refreshImageText{
self.hiddenTextField.text = @"";
self.imageText.text = @"";

self.imageText.transform = CGAffineTransformMakeRotation(0);
[self.imageText setCenter:self.view.center];
}

最佳答案

您需要更新约束,而不是对象的实际框架。因此,如果您将按钮框架 y 约束添加为 IBOutlet,您就可以轻松地对其进行编辑。

这是一个非常酷的工具,可以使用自动布局约束: https://autolayoutconstraints.com/

关于每当触发一个 Action 时,IOS View 就会更新为默认的 IB 布局,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39797770/

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