2009-12-19 67 views
0

我想水平滾動選取器視圖,這是我的代碼。如何增加選取器視圖(轉換的pickerview)寬度?

在viewDidLoad中我這樣做,

 CGRect frame = horizontalPickerView.frame; 
      frame.size.width = 50; 
      frame.size.height = 216; 
      frame.origin.x=90; 
      frame.origin.y = 200; 
      horizontalPickerView.frame = frame; 

      horizontalPickerView.transform = CGAffineTransformMakeRotation(3.14159/2); 






- (UIView *)pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)row forComponent:(NSInteger)component reusingView:(UIView *)view{ 
     UILabel *lbl = [[[UILabel alloc] initWithFrame:CGRectMake(0, 0, 30, 20)] autorelease]; 
     lbl.transform = CGAffineTransformMakeRotation(-3.14159/2); 
     lbl.text = @"hi"; 
     return lbl; 
    } 

但問題是我不能夠改變選擇器視圖超過216.0的寬度,如果我嘗試這樣做有留下了黑色的背景。

CorrectImage http://img709.imageshack.us/img709/6982/picture5g.png這是正確的圖像

現在,如果我這樣做

CGRect frame = horizontalPickerView.frame; 
       frame.size.width = 50; 
       frame.size.height = 300; 
       frame.origin.x=120; 
       frame.origin.y = 200; 
       horizontalPickerView.frame = frame; 

       horizontalPickerView.transform = CGAffineTransformMakeRotation(3.14159/2); 

我得到這個image http://img46.imageshack.us/img46/2792/picture6b.png

我見過像Seelibrity的應用程序,其中選擇器具有寬度以適應屏幕。 請幫我解決這個問題?

回答

2

UIPickerView對高度變化非常敏感,所以直接更改其框架或將變換應用於UIPickerView會導致呈現工件。我所知道的調整UIPickerView大小的唯一可靠方法是將其放置在透明UIView中,然後對該持有者視圖應用縮放比例(以及旋轉,在您的情況下)。

我在this answer中提供了一個例子。

+0

或者他可以使用UIScrollView。 – 2009-12-23 20:14:35

+0

考慮到數據源和單元格顯示方法已經存在,UITableView將是更好的選擇。 UIScrollView將要求他重新發明UIPickerView的許多功能。即使使用UITableView也需要大量的自定義插圖和疊加子視圖,以及一些管理當前選定行的機制。 – 2009-12-24 22:21:49

0

嘗試以下操作:

打開帶有選項 「開放」 你的XIB文件 - > 「痛文本文件」

搜索選擇器視圖對象:

<object class="IBUIPickerView" id="648806599"> 
<reference key="NSNextResponder" ref="191373211"/> 
<int key="NSvFlags">292</int> 
<string key="NSFrame">{{0, 83}, {100, 50}}</string> ---> here 
<reference key="NSSuperview" ref="191373211"/> 
<bool key="IBUIOpaque">NO</bool> 
<bool key="IBUIClipsSubviews">YES</bool> 
<bool key="IBUIMultipleTouchEnabled">YES</bool> 
<bool key="IBUIShowsSelectionIndicator">YES</bool> 
</object> 

更改NSframe,也許這可以幫助。

Regards

Alejandra !!