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