我正在开发一个应用程序,我需要在其中扫描字符串以填充一些UITextViews。基本上数据是这样的:
时间段:上午10点至晚上12点 温度:45F 风:123度@ 5mph
时间段:凌晨1点至3点 温度:53F 风:133度@ 2mph
时间段:上午4点至下午5点 温度:50F 风:110度@ 7mph
问题是在任何给定时间都没有可用的设定数量的时间段。所以我只需要循环直到我到达终点。有没有办法在循环中创建textview?
UITextView *textField1 = [[UITextView alloc] initWithFrame:CGRectMake(0, 0, 0, 0)];
UITextView *textField2 = [[UITextView alloc] initWithFrame:CGRectMake(0, 0, 0, 0)];
UITextView *textField3 = [[UITextView alloc] initWithFrame:CGRectMake(0, 0, 0, 0)];
.....
那么我可以在运行时创建文本字段,直到它到达字符串的末尾,或者我是否必须创建它可能需要的最大数字,然后在需要时使用它们?
谢谢, 安德鲁布斯
答案 0 :(得分:2)
当然可以。
首先使用[NSString componentsSeparatedByString]或[NSString componentsSeparatedByCharactersInSet]划分数据字符串,以获得子字符串的NSArray。
//assuming your data is separated by newlines
NSArray * substrings = [data_input componentsSeparatedByString:@"\n"];
//loop over the substrings creating textfields
for (int i = 0; i < [substrings count]; i++)
{
CGRect frame = CGrectMake(0, i * 40, 100, 30);
UITextField * tf = [[UITextField alloc] initWithFrame: frame];
tf.text = [substrings objectAtIndex:i];
//add as subview
[view addSubview: tf];
//if you are not using ARC release the textfield
}
//免责声明:随时随地写这个,可能包含一些拼写错误等,但应该足以让你继续。