2012-07-30 11 views
3

我必須創建一個帶有14-16個組件的UIPickerView。一切都初始化並且工作得很好,但是,我在右邊看到一個奇怪的黑色條(見圖),浪費了已經很狹小的空間。UIPickerView - 許多組件上的右邊黑條

有沒有辦法擺脫它?是否還有一種方法可以消除組件之間的所有黑色間距以及組件內部的灰線?

謝謝。

enter image description here

(UIView *)pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)row forComponent:  
(NSInteger)component reusingView:(UIView *)view 
{ 
    UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 30, 30)]; 
    [label setText:[numArray objectAtIndex:row]]; 
    [label setTextAlignment:UITextAlignmentCenter]; 
    [label setFont:[UIFont boldSystemFontOfSize:14]]; 
    [label setBackgroundColor:[UIColor clearColor]]; 
    return label; 
} 
+4

如果您使用帶有14-16列的選擇器,那麼對於您正在嘗試執行的操作,必須有更好的設計。用戶的手指可能會比這些列中的一個更大,這肯定會讓人煩惱得很快。也許你應該用鍵盤代替文本字段。我不確定你想要做什麼... – 2012-07-30 15:20:26

+0

屏幕抓取是從縱向視圖,但應用程序實際上是設計爲在橫向上運行,這爲任何尺寸的手指提供了充足的空間。 UIPickerView是所需功能的最合適組件。 – 2012-07-30 16:07:04

+0

我不認爲默認的pickerview被設計爲與許多列一起工作。如果你想要這樣的極端功能,你可能必須自己做。 – Dustin 2012-07-30 16:11:51

回答

0

什麼是你的選擇器視圖的寬度是多少?你是如何設定寬度的? 寬度是固定的還是你使用類似 (風景模式記) CGRectGetHeight([UIScreen mainScreen].applicationFrame) // use this as width in landscape mode

那麼你會除以寬度與(14-16)的選擇器觀看次數。 有了這個寬度的選擇器視圖,你不應該有那個黑色條。

如果你確實已經做了我剛纔寫的東西,而且我猜你已經做了 那麼這可能是狀態欄空間,如果你是以編程的方式創建的(就像你已經做的那樣)。 在故事板以外創建UI組件時,某些組件將自己置於0.0f,20.0f的狀態欄。其中一些是UINavigationController。