banner
李大仁博客

李大仁博客

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

iOS开发之自定义系统的UIActionSheet修改按钮的属性

在 SDK 中,iOS 中的 UIActionSheet 只提供了少数几种样式。这些样式基本上可以满足开发需求,但有时也会遇到一些比较麻烦的要求。这时就需要单独定制 UIActionSheet,通过修改按钮的属性来实现修改。如果是 iOS4 或之前的版本,操作起来比较复杂。但是从 iOS5 开始,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];
//btn 的选择状态,否则选择后不变背景
[button setSelected];
} else {
}
}

} else {
    //IOS4之前版本下按钮不是继承于UIButton而是UIThreePartButton
    for (UIView \*view in actionSheet.subviews) {
        if (view.tag == 2) {
            UIControl \*btn = (UIControl \*) view;
            \[btn setSelected:YES\];
        } else {
        }
    }
} 

}

加载中...
此文章数据所有权由区块链加密技术和智能合约保障仅归创作者所有。