在循环中创建UITextViews - Objective C

时间:2012-01-20 04:40:49

标签: iphone ios5 runtime nstextview

我正在开发一个应用程序,我需要在其中扫描字符串以填充一些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)];
                   .....

那么我可以在运行时创建文本字段,直到它到达字符串的末尾,或者我是否必须创建它可能需要的最大数字,然后在需要时使用它们?

谢谢, 安德鲁布斯

1 个答案:

答案 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
    }

//免责声明:随时随地写这个,可能包含一些拼写错误等,但应该足以让你继续。