此方法在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

中修改。

自定义AlertView的方法和改变Alert的弹出位置以及其宽度的更多相关文章

  1. Selenium(八):其他操作元素的方法、冻结界面、弹出对话框、开发技巧

    1. 其他操作元素的方法 之前我们对web元素做的操作主要是:选择元素,然后点击元素或者输入字符串. 还有没有其他的操作了呢?有. 比如:比如鼠标右键点击.双击.移动鼠标到某个元素.鼠标拖拽等. 这些 ...

  2. 经验总结:WebBrowser自动点击弹出提示框alert、弹出对话框confirm、屏蔽弹出框、屏蔽弹出脚本错误的解决办法

    经验总结:WebBrowser自动点击弹出提示框alert.弹出对话框confirm.屏蔽弹出框.屏蔽弹出脚本错误的解决办法 网上有好多解决方法,可是不一定好使,本人经过多次试验,针对WebBrows ...

  3. 纯手画WinForm的Alert提示弹出框

    纯手画WinForm的Alert弹框 一.窗体设置 设置以下属性: 属性名 属性值 说明 AutoScaleMode None 确定屏幕分辨率或字体更改时窗体如何缩放 BackColor 103, 1 ...

  4. 吐血bug-- 多个input框接连blur事件导致alert接连弹出

    本来今天想记录一下Flow在vue源码中的应用,结果临时触发了个bug... bug描述: elementUi + Vue 技术 需求:一个表格中有至少两条数据,每条数据都有input框,在失去焦点后 ...

  5. mui popover 自定义 弹出位置 显示 隐藏

    mui popover 一.要显示.隐藏弹出菜单插件,mui推荐使用锚点方式. 1.页面顶部导航栏.底部工具栏固定位置 <header class="mui-bar mui-bar-n ...

  6. form WebBrowser自动点击弹出提示框alert、弹出对话框confirm、屏蔽弹出框、屏蔽弹出脚本错误的解决办法

    针对WebBrowser控件中自动点击弹出框及禁用脚本提示问题得到如下几种实际情况的解决办法,绝对管用. 1.屏蔽弹出错误脚本 将WebBrowser控件ScriptErrorsSuppressed设 ...

  7. 从service弹出系统级自定义提示框,可在任意页面弹出

    添加权限 <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" /> // 显示 ...

  8. 自定义Toast解决快速点击时重复弹出,排队无止尽

    解决办法:自定义MyToast类: public class MyToast { /** 之前显示的内容 */ private static String oldMsg ; /** Toast对象 * ...

  9. Bootstrap方法为页面添加一个弹出框

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...

随机推荐

  1. 洛谷P2285 [HNOI2004]打鼹鼠

    P2285 [HNOI2004]打鼹鼠 题目描述 鼹鼠是一种很喜欢挖洞的动物,但每过一定的时间,它还是喜欢把头探出到地面上来透透气的.根据这个特点阿牛编写了一个打鼹鼠的游戏:在一个n*n的网格中,在某 ...

  2. HTTPRunner实践二——参数化之生成UUID

    接口测试中,需要使用到UUID,用来生成唯一ID. 1.什么是UUID UUID是128位的全局唯一标识符,通常由32字节的字符串表示.它可以保证时间和空间的唯一性,也称为GUID,全称为:UUID ...

  3. 人民网慕课联手FISCO BCOS开源社区上线“区块链学院”

    FISCO BCOS是完全开源的联盟区块链底层技术平台,由金融区块链合作联盟(深圳)(简称金链盟)成立开源工作组通力打造.开源工作组成员包括博彦科技.华为.深证通.神州数码.四方精创.腾讯.微众银行. ...

  4. pycharm安装教程,汉化教程,以及正版激活码---

    密钥在下面 安装过程 PyCharm2019本地下载: http://www.100c1.com/upload/default/20190420/1c08a3209029093a8b34df941f1 ...

  5. Windows右下角图标显示不正常

    我的win7系统,右下角图标透明,分不清哪个是哪个.点击也没有任何反应. 解决办法: 点击运行输入cmd,在命令提示符下输入下列命令即可恢复. taskkill /im explorer.exe /f ...

  6. CC01:确定字符互异

    题目 请实现一个算法,确定一个字符串的所有字符是否全都不同.这里我们要求不允许使用额外的存储结构. 给定一个string iniString,请返回一个bool值,True代表所有字符全都不同,Fal ...

  7. SqlDbx连接oracle

    解压SqlDbx.zip,将SqlDbx放到C:盘根目录 1.Path里面增加:C:\SqlDbx  Path是为了找tnsnames.ora 2.增加系统变量:ORACLE_HOME,路径:C:\S ...

  8. Java基础语法(Eclipse)

    Java基础语法 今日内容介绍 u Eclipse开发工具 u 超市库存管理系统 第1章 Eclipse开发工具 Eclipse是功能强大Java集成开发工具.它可以极大地提升我们的开发效率.可以自动 ...

  9. GreenDao使用踩过的坑

    本来想用litePal,看了郭大婶的说明,真的是好用! 后来发现网上说比较流行的还是 GREENDAO,且效率不错! 不用管那么多了,直接用吧. --------------------------- ...

  10. Kendo UI 移动应用开发简介

    Kendo UI 移动应用开发简介 Kendo UI 支持开发 Web 应用,前面介绍的 SPA,也支持开发移动应用,至于使用 HTML5 + JavaScript + CSS 开发移动是不是一个好的 ...