自定义AlertView的方法和改变Alert的弹出位置以及其宽度

此方法在IOS7中不适合

一、自定义AlertView

  1、首先新建一个OC类继承与AlertView。

  2、然后再.m中添加方法 - (void)layoutSubviews

    可以再这个方法里边改变alertView的背景图片,各个按钮的图片,等一系列的操作

    示例代码如下:

    

for (UIView *v inself.subviews) {

        if ([v isKindOfClass:[UIImageView class]]) {

            UIImageView *imageV = (UIImageView *)v;

            UIImage *image = [UIImage imageNamed:kAlertViewBackground];

            image = [[image stretchableImageWithLeftCapWidth:0topCapHeight:kAlertViewBackgroundCapHeight] retain];

            [imageV setImage:image];//替换alertView地背景图片

        }

        if ([v isKindOfClass:[UILabel class]]) {

            UILabel *label = (UILabel *)v;

            if ([label.text isEqualToString:self.title]) {

                label.font = [kAlertViewTitleFont retain];

                label.numberOfLines = 0;

                label.lineBreakMode = UILineBreakModeWordWrap;

                label.textColor = kAlertViewTitleTextColor;

                label.backgroundColor = [UIColor clearColor];

                label.textAlignment = UITextAlignmentCenter;

                label.shadowColor = kAlertViewTitleShadowColor;

                label.shadowOffset = kAlertViewTitleShadowOffset;//替换Title的样式

            }else{

                label.font = [kAlertViewMessageFont retain];

                label.numberOfLines = 0;

                label.lineBreakMode = UILineBreakModeWordWrap;

                label.textColor = kAlertViewMessageTextColor;

                label.backgroundColor = [UIColor clearColor];

                label.textAlignment = UITextAlignmentCenter;

                label.shadowColor = kAlertViewMessageShadowColor;

                label.shadowOffset = kAlertViewMessageShadowOffset;

            }

        }

        if ([v isKindOfClass:NSClassFromString(@"UIAlertButton")]) {//替换取消等按钮的样式

            UIButton *button = (UIButton *)v;

            UIImage *image = nil;

            if (button.tag == 1) {

                image = [UIImage imageNamed:[NSString stringWithFormat:@"alert-%@-button.png", @"gray"]];

            }else{

                image = [UIImage imageNamed:[NSString stringWithFormat:@"alert-%@-button.png", @"black"]];

            }

            image = [image stretchableImageWithLeftCapWidth:(int)(image.size.width+1)>>1 topCapHeight:0];

            button.titleLabel.font = kAlertViewButtonFont;

            button.titleLabel.minimumFontSize = 10;

            button.titleLabel.textAlignment = UITextAlignmentCenter;

            button.titleLabel.shadowOffset = kAlertViewButtonShadowOffset;

            button.backgroundColor = [UIColor clearColor];

            [button setBackgroundImage:image forState:UIControlStateNormal];

            [button setTitleColor:kAlertViewButtonTextColorforState:UIControlStateNormal];

            [button setTitleShadowColor:kAlertViewButtonShadowColorforState:UIControlStateNormal];

        }

    }

二、更改AlertView的弹出位置及其宽度

  在代理方法

- (void)willPresentAlertView:(UIAlertView *)alertView

中修改。

转载于:https://www.cnblogs.com/chenhaosuibi/p/3465850.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值