gpt4 book ai didi

iphone - 当满足特定条件时,如何删除在运行时创建的对象?

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

- (IBAction)namePoints:(id)sender {
yValuePoints = 180;
pointTextBoxCounter = 0;

while (numberOfPointsTextBox.text.intValue > currentPointTextBox) {
CGRect textFrame = CGRectMake(245, yValuePoints, 60, 30);
UITextField *textField = [[UITextField alloc] initWithFrame:textFrame];
[textField setBackgroundColor:[UIColor whiteColor]];
[textField setBorderStyle:UITextBorderStyleRoundedRect];
textField.textAlignment = UITextAlignmentRight;
[self.view addSubview:textField];
currentPointTextBox += 1;
yValuePoints += 40;
if (yValuePoints > mainScrollView.contentSize.height) {
[mainScrollView setContentSize:CGSizeMake(320, (yValuePoints + 20))];
}

}
while (numberOfPointsTextBox.text.intValue < currentPointTextBox) {
[self.view.subviews.lastObject removeFromSuperview];
//[[pointsTextFieldsArray objectAtIndex:currentPointTextBox] removeFromSuperview];
currentPointTextBox -= 1;
}

}

当 numberOfPointsTextBox didFinishEditing 时调用此函数。 CurrentPointTextBox 是一个 int,它(希望)跟踪当前屏幕上的点文本框的数量(还有其他的,例如具有类似功能的平面)。我想要的是当 numberOfPointsTextBox 的值减少以删除额外的点文本框时。我一直在尝试做的是使用 pointsTextFieldsArray 来跟踪我在 self.view.subviews 数组中创建的字段的索引值,这样我就可以运行注释掉的代码行,但 NSMutableArray 不会接受 int 值,但我找不到动态创建 NSIntegers 的方法。有谁知道如何做到这一点?或者更好的方法来做到这一点?

最佳答案

我相信你的方法不太正确。您应该在每次 currentPointTextBox 时更新您的 View 。被改变。

也就是说,您需要在您的 init 函数中将其设置为 0 (零),然后从那里开始。

我假设您总是删除最后一个或添加到“列表”的末尾。这样,您可以将 TextFields 存储在 pointsTextFieldsArray 中,它应该是 NSMutableArray目的。

我已经整理了一些代码(基于您的),应该为您指明正确的方向:

-(id) init {
self = [super init];
if (self) {
currentPointTextBox = 0;
}
}

-(void)viewDidLoad {
pointsTextFieldsArray = [[NSMutableArray alloc] init];
}

-(void)setCurrentPointTextBox:(NSInteger)num {
while (currentPointTextBox < num) {
currentPointTextBox++;

// Create TextField
yValuePoints = 180 + 40 * (currentPointTextBox - 1);
UITextField *textField = [[UITextField alloc] initWithFrame:textFrame];
[textField setBackgroundColor:[UIColor whiteColor]];
[textField setBorderStyle:UITextBorderStyleRoundedRect];
textField.textAlignment = UITextAlignmentRight;

[pointsTextFieldsArray addObject:textField];
[self.view addSubview:textField];

}


while (currentPointTextBox > num) {
currentPointTextBox--;

UITextField *textField = [pointsTextFieldsArray lastObject];
[textField removeFromSuperView];
[pointsTextFieldsArray removeObject:textField];
}

yValuePoints = 180 + 40 * (currentPointTextBox - 1);
if (yValuePoints > mainScrollView.contentSize.height) {
[mainScrollView setContentSize:CGSizeMake(320, (yValuePoints + 20))];
}

}

如果您需要更多帮助,请多打扰我。

关于iphone - 当满足特定条件时,如何删除在运行时创建的对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8182539/

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