2010-08-12 121 views

回答

5

UIDatePicker包含一個子視圖。該子視圖又包含15個形成UIDatePicker外觀的其他子視圖。第一個和最後一個都是背景,所以使它透明剛剛關閉它們與主要子視圖的背景色設置爲clearColor:

// create the picker 
UIDatePicker *datePicker = [[UIDatePicker alloc] initWithFrame:CGRectMake(0, 40, 320, 320)]; 

// add it to some view first 
[actionSheet addSubview:datePicker]; 
[datePicker release]; 

// clear the background of the main subview 
UIView *view = [[datePicker subviews] objectAtIndex:0]; 
[view setBackgroundColor:[UIColor clearColor]]; 

// hide the first and the last subviews 
[[[view subviews] objectAtIndex:0] setHidden:YES]; 
[[[view subviews] lastObject] setHidden:YES]; 
+0

這種的被蘋果接受?它似乎依賴於內部實現細節,這些細節可能在未來的版本中發生變化。 – 2013-05-04 20:34:50

+0

當然,UIDatePicker的內部實現可能會在未來由Apple改變。至於應用程序審查過程,有幾個UI元素不允許更改它們的背景(如UIDatePicker,UISearchBar等),但在某些應用程序中,它們會在默認背景下顯得笨拙。雖然這種控制調整不是一種好的做法,但Apple知道UI元素的限制,並允許應用程序包含自定義控件(如果它們看起來不錯)。 – Amoneron 2013-05-06 13:27:25

+0

我得考慮一下。我的應用程序對我來說似乎太危險了。我們沒有來自客戶的維護合同,所以我們必須希望它儘可能長時間地保持活躍,不會受到平臺變更的影響。在內部實現方面可能沒有問題,但似乎更有可能在下一個版本的iOS中突破,所以我不知道我們是否可以承擔風險。無論如何,感謝您的反饋。 – 2013-05-06 16:56:19