UI를 만들기 위해 JSON 문자열을 구문 분석하는 데이터 드라이브 App을 작성하려고합니다. 나는 이것을 구현하고 필요한 통제를 만들었다. 나는 그들에게 할당 된 태그를 기반으로 각 컨트롤을 구분하고 있는데, 이는 효율적인 방법이 아닙니다. UIControl을 동적으로 생성하는 동안 이름 (다음 예에서 레이블 및 텍스트 필드 제외)을 할당하는 방법이 있습니까? 당신이 범주를 통해 UIControl
에 바르를 추가 할 수는 없지만iOS : UIControl에 동적으로 이름을 지정하고 할당합니다.
NSMutableArray *myArray = [[NSMutableArray alloc] initWithCapacity: myArrayCount];
for (loop = 0; loop< myArrayCount; loop++) {
NSString *propertyName = [NSString stringWithFormat:@"Label %d", loop];
[myArray addObject:propertyName];
CGRect labelFrame = CGRectMake(xLabel, yLabel, widthLabel, heightLabel);
UILabel *label = [[UILabel alloc] initWithFrame: labelFrame];
label.tag = loop;
[label setText:propertyName];
[label sizeToFit];
[self.view addSubview:label];
UITextField *textField = [[UITextField alloc] initWithFrame:CGRectMake(xTextField, yTextField, widthTextField, heightTextField)];
textField.tag = loop;
textField.borderStyle = UITextBorderStyleRoundedRect;
textField.font = [UIFont systemFontOfSize:15];
textField.placeholder = @"Enter parameter value";
textField.autocorrectionType = UITextAutocorrectionTypeNo;
textField.keyboardType = UIKeyboardTypeDefault;
textField.returnKeyType = UIReturnKeyDone;
textField.clearButtonMode = UITextFieldViewModeWhileEditing;
textField.contentVerticalAlignment = UIControlContentVerticalAlignmentCenter;
textField.returnKeyType = UIReturnKeyDone;
textField.delegate = self;
[self.view addSubview:textField];
yLabel = yLabel+yOffset;
yTextField = yTextField+yOffset;
}
태그처럼 문을 통해 컨트롤을 검색 할 수 있습니다 동적 식별 할 수있는 효율적인 방법입니다 UIControls, 만약 당신이 이름으로 간다면 그것은 좀 더 복잡한 일이 될 것입니다. – rishi
나는 누군가 다른 해결책이 있는지 궁금해한다. 특정 텍스트 필드의 값에 액세스 할 때마다 모든 텍스트 필드를 구문 분석하고 올바른 태그를 사용하여 값을 가져와 값을 가져야합니다! 게다가 나는 버튼, 세그먼트 컨트롤, uipicker 등등과 같은 많은 다른 컨트롤을 가지고 있습니다 ... 나는 그들 모두를 위해 태그를 사용할 수 있습니까? – applefreak