2011-06-08 78 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,而不是在滾動視圖中,因爲如果將它添加到滾動視圖中,將無法從拾取器視圖中選擇值。