2012-07-31 16 views
1

我試圖創建一個UIAlertView中UIPickerView,我寫了下面的代碼調整UIPickerView

UIAlertView *alert = [[UIAlertView alloc] initWithFrame:CGRectMake(0, 0, 300, 200)]; 

alert.title = @"Preferences"; 
alert.message = @"\n\n\n\n\n\n\n"; 
alert.delegate = self; 
[alert addButtonWithTitle:@"Cancel"]; 
[alert addButtonWithTitle:@"OK"]; 


UIPickerView *myPickerView = [[UIPickerView alloc] initWithFrame:CGRectZero]; 
myPickerView.delegate = self; 
myPickerView.showsSelectionIndicator = YES; 
myPickerView.autoresizingMask = UIAlertViewStyleDefault; 

myPickerView.frame = CGRectMake(10, 40, 250, 150); 

[alert addSubview:myPickerView]; 

[alert show]; 

,但運行時,pickerView大小是不適合的警報視圖,它看起來如圖所示的形象。

here image

我怎樣才能解決這個問題呢? 在此先感謝。


我解決了它,我發現,我有以下代碼

- (CGFloat)pickerView:(UIPickerView *)pickerView widthForComponent:(NSInteger)component { 
int sectionWidth = 300; 

return sectionWidth; 
} 

當我刪除了這一點,它固定。 :) 感謝大家試圖幫助我,我很抱歉我的錯誤。 :$

+0

您可以更改選取器視圖的寬度 – Leena 2012-07-31 09:05:31

+0

我試圖減少它,但它會減少右側的「拾取器邊緣」一行,並且其餘選取器會通過警報的邊緣 – user1553381 2012-07-31 09:10:08

回答

0

不能調整pickerView身高只有改變寬度x和y座標 或者你必須做出alertview大ENO

+0

是的,我試圖改變寬度只是爲了不通過alertView的邊緣,我試圖讓alertView的寬度更大,但它仍然通過如圖所示的邊緣:S – user1553381 2012-07-31 09:02:10

+0

它可以調整它的大小。 – akk 2012-07-31 09:05:14

+0

怎麼樣?我的代碼中是否有錯誤?或者你能爲我推薦一個示例代碼嗎? – user1553381 2012-07-31 09:07:52

0

我認真質疑這種風格。此外,我不認爲你實際上可以改變UIAlertView的大小。我建議您使用表單演示文稿執行模態演示,以便顯示一個UIView,以便您用一些按鈕放置UIPickerview以確認或取消。您可以使用StoryBoard或手動進行編程。

+0

但我的項目的要求告訴我要執行這種風格:S它在alerView中添加一個pickerView非常重要:S – user1553381 2012-07-31 09:13:52

+0

該文檔說:「UIAlertView類旨在按原樣使用,不支持子類。此類的視圖層次結構是私有的,不能修改。」這意味着UIAlertView將根據您的消息的大小調整自己的尺寸,但是您不能強制它達到一定的尺寸,也不應修改視圖層次結構。 – 2012-07-31 09:20:11

1

我有一個類似這樣的要求。但我無法使用'UIPickerView'取得成功。所以我搬到了'AFPickerView'。可能會幫助你!

0

更改xib中的寬度。爲此,您需要以XML格式打開Xib並找到PickerView並更改寬度並保存,運行。希望這會起作用!