3

我以编程方式在我的 UIView 上添加了一个UITextView 。添加的textview是不可编辑的,它只是为了显示一些数据。textview 中显示的数据是从数组中获取的。textview 的个数与存储在Array中的文本相同。Textview 是从头到尾一个一个显示的。我需要先一个一个地设置 textview 的位置textview 来设置在某个位置,second 将设置为 first textview之前,third 将设置在 second 之前,依此类推.. 注意:使用Animation之类的东西。假设一个文本视图来自顶部,它在 Y 位置 250 处停止,然后是下一个文本视图将在此之前设置..它不能达到 Y 位置的 250。等等。我不知道该怎么做。请给我一些想法。

4

4 回答 4

3

不要考虑数组和UITextView数据..它是临时的..

NSMutableArray *array = [[NSMutableArray alloc]initWithObjects:@"One",@"Two",@"three",@"Four",@"Five",@"Six",@"Seven",@"Eight",@"Nine",@"Ten", nil];


for(int i=0;i<[array count];i++) {
    UITextView *textView = [[UITextView alloc]init];
    [textView setFrame:CGRectMake(20, 20*i+height, 200, height)];
    [textView setBackgroundColor:[UIColor redColor]];
    [textView setText:[array objectAtIndex:i]];
    [self.view addSubview:textView];
}
于 2012-10-04T10:10:35.397 回答
2

您想基于数组以编程方式在视图中添加文本视图,如果您将文本视图添加到视图中,那么就会出现问题(如果您有更多的文本视图,那么您必须采用滚动视图),这就是为什么最好采用滚动视图并将滚动视图添加到您的视图之后,您将向滚动视图添加文本视图,

now take constant x-coordinate value ,width and height only change y-coordinate value and you must give the content size to scrollview .


for(int i=1;i<[array length];i++){
    text_desc = [[UITextView alloc] initWithFrame:CGRectMake(63,64*i,370,60)];
    text_desc.font = [UIFont fontWithName:@"Helvetica" size:13.0];
    text_desc.editable=NO;
    text_desc.tag=1;
}

然后设置 srollview 内容大小,

scroll.contentSize = CGSizeMake(0,total*87);
于 2012-10-04T10:11:52.260 回答
1

//循环遍历数组类型的子字符串以在运行时添加文本字段

for (int i = 0; i < [substrings count]; i++)
{
    CGRect frame = CGrectMake(0, i * 40, 100, 30);
    UITextField * txtDynamic = [[UITextField alloc] initWithFrame: frame];
    txtDynamic.text = [substrings objectAtIndex:i];

    //add as subview
    [view addSubview:txtDynamic];

    //if you are not using ARC release the txtDynamic
}

注意 如果 UITextField 的数量更多,即超出屏幕,则将 UITextField 添加到 UIScrollView,您可以使其大小和内容大小动态化。

希望这会给你一些线索。

于 2012-10-04T10:07:54.427 回答
1

嘿,伙计,然后拿一个滚动视图,并在其中设置所有文本视图,ContentSize如下所示

这里我举个例子,

注意:这只是示例,这里取一个UIScrollView并命名为 scrview,然后在其中添加所有这些UITextField

在文本字段中添加数据后添加此代码

 txt1.frame = CGRectMake(txt1.frame.origin.x,    txt1.frame.origin.y, txt1.frame.size.width, txt1.contentSize.height); 

float txtscreen1 = txt1.frame.origin.y + txt1.contentSize.height + 10;

txt2.frame = CGRectMake(txt2.frame.origin.x, txtscreen1, txt2.frame.size.width, txt2.contentSize.height);


float txtscreen2 = txt2.frame.origin.y + txt2.contentSize.height + 10;

txt3.frame = CGRectMake(txt3.frame.origin.x, txtscreen2, txt3.frame.size.width, txt3.contentSize.height);

//.....and so on to 10

float txtscreen10 = txt3.frame.origin.y + txt3.contentSize.height + 10;


txt10.frame = CGRectMake(txt10.frame.origin.x, txtscreen10, txt10.frame.size.width, txt10.contentSize.height);

float scrollviewscreen = txtscreen10.frame.origin.y + txtscreen10.frame.size.height + 20;
scrview.contentSize=CGSizeMake(320, scrollviewscreen);//take scrollview 

我希望这对你有帮助....

:)

于 2012-10-04T10:09:30.307 回答