此方法在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. 常用的js工具函数

    JS选取DOM元素的方法注意:原生JS选取DOM元素比使用jQuery类库选取要快很多1.通过ID选取元素document.getElementById('myid');2.通过CLASS选取元素do ...

  2. SocLib的安装

    一.soclib的安装 1.安装g++,一般Ubuntu系统都自带了,所以无需安装.后面这两个软件需要提前安装,不然后面执行相关操作是会报错:sudo apt-get install automake ...

  3. hbase按照时间戳删除记录

    1.按照时间戳范围查询记录 echo "scan 'event_log', { COLUMN => 'cf:sid', TIMERANGE => [1466265600272, ...

  4. 自定义Spring Security的身份验证失败处理

    1.概述 在本快速教程中,我们将演示如何在Spring Boot应用程序中自定义Spring Security的身份验证失败处理.目标是使用表单登录方法对用户进行身份验证. 2.认证和授权(Authe ...

  5. 故障案例:主从同步报错Fatal error: The slave I/O thread stops because master and slave have equal MySQL server

    https://blog.csdn.net/cug_jiang126com/article/details/46846031

  6. nodejs 实践:express 最佳实践 (一) 项目结构

    express 最佳实践 (一) 第二篇: express 最佳实践(二):中间件 最近,一直在使用 nodejs 做项目,对 nodejs 开发可以说深有体会. 先说说 nodejs 在业务中的脚色 ...

  7. log4j.properties配置详情

    log4j: log for java 是Apache的一个开源项目! 00.将我们的日志信息,输出到指定的位置(控制台   文件中) 01.我们可以控制每一条日志的输出格式 02.我们设置日志信息的 ...

  8. ABAP:parameters的用法

    parameters 1.基础用法 parameters:p0(20) type c. 2.使用DEFAULT后缀为参数指定缺省值. parameters:p1(20) type c default ...

  9. canvas背景效果

    canvas背景效果: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> & ...

  10. Volley解析(一)--Volley的使用

    Volley解析(一)--Volley的使用 Volley 是一个HTTP协议的网络请求框架 Volley的优势: 自动安排网络请求 支持多个并发网络连接 具有标准HTTP缓存一致性的透明磁盘和内存响 ...