2011-06-08 77 views
0

我有一个srollview的文本框和标签作为它的子视图,我想显示UIpickerview的两个文本框。 例如:当用户触摸textfield11我想显示一个从屏幕底部向上滑动的选取器,此时我想要更改我的滚动视图的高度,但它不起作用。UIscrollview调整大小的问题

CGRect scrollframe = scrollView.frame; 
    NSLog(@"scrollframe.height=%f, pick height=%f",scrollframe.size.height, pick.frame.size.height); 
    scrollframe.size.height -= pick.frame.size.height; 
    [UIView beginAnimations:@"start" context:NULL]; 
    [UIView setAnimationDuration:0.2]; 
    [UIView setAnimationBeginsFromCurrentState:YES]; 
    [scrollView setFrame:scrollframe]; 
    NSLog(@"scroll height = %f",scrollframe.size.height); 
    NSLog(@"scrollview height = %f", scrollView.frame.size.height); 
    [pick setFrame:CGRectOffset([pick frame], 0, -220)]; 
    [UIView commitAnimations]; 

这是控制台日志..

2011-06-08 10:43:31.316 AESDirect [281:207] scrollframe.height = 416.000000,挑高度= 216.000000 2011-06-08 10 :43:31.316 AESDirect [281:207]滚动高度= 200.000000 2011-06-08 10:43:31.317 AESDirect [281:207]滚动视图高度= 200.000000 before scrolling

after scrolling

+1

为什么要增加scrollview的高度?如果你想要移动其他字段,你可以改变滚动视图的内容偏移量 – visakh7 2011-06-08 05:34:46

+0

我不想增加它的高度,我想要降低它的高度,就像我们想阻止键盘隐藏文本框时一样 – 2011-06-08 05:39:53

+0

因为只有你可以改变contentOffset而不是高度。设置滚动视图的contentoffset和字段将相应地增加 – visakh7 2011-06-08 05:52:34

回答

1

这MIG ht帮助你:

[scrollframe setContentOffset:CGPointMake(scrollframe.contentOffset.x, scrollframe.contentOffset.y-100)]; 

你可以通过调用pickerView的同一个函数调用上面的代码。所以这样你不必改变scrollview的高度。

您的代码应该是这样的,那么:

 UIView *contentView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 460)]; 
[contentView setBackgroundColor:[UIColor clearColor]]; 
self.view = contentView; 

UIScrollView *horizontalScroll = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, 320, 460)]; 
[horizontalScroll setBackgroundColor:[UIColor blackColor]]; 
[horizontalScroll setDelegate:self]; 
[contentView addSubview:horizontalScroll]; 

UIPickerView *tempPicker = [[UIPickerView alloc] initWithFrame:CGRectMake(0, 220, 320, 100)]; 
[tempPicker setHidden:YES]; 
[contentView addSubview:tempPicker]; 

使他们三人都为全球的.h文件中,然后你将不得不对他们的行为更好的控制。您的选择器视图与其他滚动视图项目一起移动,因为您可能会将选择器视图添加为滚动视图上的子视图。

+0

问题依然存在。 btw scrollview contentsize是(320,665),当我点击原始状态textfield时,选择器向上滑动(屏幕截图1),但是scrollview的高度不会减小。所以如果选择器是可见的,我滚动选择器也像滚动的方向移动,就像所有其他子视图正在移动 – 2011-06-08 06:40:33

+0

更新我的回应。 – Prabh 2011-06-08 06:58:54

+0

[self.view addSubview:pick]; – 2011-06-08 07:16:24

0

您必须在视图中更改您的内容大小和内容偏移量以及pickerview,而不是在滚动视图中,因为如果将它添加到滚动视图中,将无法从拾取器视图中选择值。