我知道UIActionSheets不提供那麼多的自定義功能,但我所問的是,我可以使用綠色按鈕(我自己的UIImage)而不是灰色/白色按鈕嗎?我可以提供我自己的圖像和已經存在的我想要的文本;所以使用正常的UIActionSheet,我可以在其中一個按鈕上提供自己的圖像嗎?如果是這樣,我該怎麼去做呢?UIAmage for UIActionSheet button?
感謝, O.Z
我知道UIActionSheets不提供那麼多的自定義功能,但我所問的是,我可以使用綠色按鈕(我自己的UIImage)而不是灰色/白色按鈕嗎?我可以提供我自己的圖像和已經存在的我想要的文本;所以使用正常的UIActionSheet,我可以在其中一個按鈕上提供自己的圖像嗎?如果是這樣,我該怎麼去做呢?UIAmage for UIActionSheet button?
感謝, O.Z
@huesforalice是正確的,最簡潔的方法是創建您自己的UIActionSheet替代。基本上,你有3個選項:
一個真正的替代:創建一個UIActionSheet子類是協議兼容的'UIActionSheetDelegate'。這將允許您將它完全用作UIActionSheet - 但是,確定UIActionSheet何時和爲什麼要調用委託方法實現可能是一個代價高昂的過程。
即使走得更遠,也擴展了協議。這將給你更多的可能性,如何使用它(即允許採用新的協議方法使用選取器),但會更加困難。
最簡單的方法是創建一個自己的實現,它不依賴於UIActionSheet或它的協議 - 但它不會取代真正的UIActionSheet,意思是說你不能將它放到你的項目中,期待它的工作。但你會擁有最高的自由度。
我會推薦3. I found a project, that is working like that。但要注意:它表明你如何做到這一點一般,但有一些貧困的底層設計決定:
它採用的方法
- (void) addButtonWithTitle: (NSString*) buttonTitle buttonId: (NSInteger) buttonId textColor: (UIColor*) textColor textShadowColor: (UIColor*) textShadowColor backgroundColor: (UIColor*) buttonBackgroundColor increasedSpacing: (BOOL) spacing
相反 - 恕我直言 - 它應該是
- (void) addButton: (UIButton*) button;
因此,您可以添加具有不同設計的按鈕,使其更加靈活,不依賴於節ID,完全不必要,因爲對象已經擁有自己的身份。
[actionSheet showWithAnimation:YES];
應該被稱爲 show
或showAnimated:
爲…withAnimation:
的方法通常需要一個塊執行自定義動畫。
此使用UIActionSheet和記錄方法北京時間不可能的。您可以編寫自己的動作表,然後您可能會將其添加到主窗口,並以動畫形式向上滑動。可能有辦法通過分析操作表私人視圖層次結構和添加自定義按鈕來實現自己想要的操作,但是您必須記住,私有視圖層次結構可能會從一個iOS版本更改爲另一個,因此您的應用可能會中斷或可能甚至被蘋果拒絕。
我看了一下這個項目,但它沒有那個蘋果期待它,我知道它問了很多,但那就是我最終想要它的樣子。你確定沒有辦法繼承UIActionSheet並且這樣做嗎? –