banner
李大仁博客

李大仁博客

天地虽大,但有一念向善,心存良知,虽凡夫俗子,皆可为圣贤。

iOS開發中,我們可以自定義系統的UIActionSheet並修改按鈕的屬性。

在 SDK 中,iOS 中的 UIActionSheet 只提供了少數幾種樣式,這些樣式基本上可以滿足開發需求,但有時也會遇到比較麻煩的要求,這時就需要單獨定制 UIActionSheet,通過修改按鈕的屬性來實現修改。如果是 iOS 4 或之前的版本,操作起來比較複雜,但是從 iOS 5 開始,UIActionSheet 中的按鈕被更改為 UIButton 類型後,就比較容易了。可以直接遍歷 UIActionSheet 的所有子視圖,找到對應的按鈕並修改其屬性,實現起來非常簡單。需要注意的是,UIActionSheet 中按鈕列表中的按鈕索引 ID 可以直接使用 tag 屬性來獲取,這樣很方便找到它們。

參考代碼:

- (void)willPresentActionSheet:(UIActionSheet *)actionSheet {
if ([[[UIDevice currentDevice] systemVersion] floatValue] > 4.9) {
for (UIView *view in actionSheet.subviews) {
if (view.tag == 2) {
UIButton *button = (UIButton *) view;
// 改變背景
[button setBackgroundImage:[button backgroundImageForState] forState];
// 改變顏色
[button setTitleColor:[UIColor whiteColor] forState];
// 按鈕的選擇狀態,否則選擇後背景不變
[button setSelected];
} else {
}
}

} else {
    //在iOS 4之前的版本中,按鈕不是繼承於UIButton,而是UIThreePartButton
    for (UIView \*view in actionSheet.subviews) {
        if (view.tag == 2) {
            UIControl \*btn = (UIControl \*) view;
            \[btn setSelected:YES\];
        } else {
        }
    }
} 

}

載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。