ios8以后,使用UIAlertViw时pop/push页面后,键盘闪一下的问题

代码为

UIAlertView *alert = [[UIAlertView alloc]initWithTitle:@"" message:@"感谢你对我们提出的意见或建议,你的支持就是我们进步的动力!" delegate:self cancelButtonTitle:@"我知道了" otherButtonTitles:nil, nil];
[alert show];

-(void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex{
    if (buttonIndex==0) {
        [self backForward];
    }
}

效果如图

这是因为alertView的动画和键盘动画起冲突了
解决方法分为两种
①用UIAlertController,适用于ios8以后
②若还是想用UIAlertView,那么可以用如下方法

alertview show的时候写个主线程延迟,pop也延迟

UIAlertView *alert = [[UIAlertView alloc]initWithTitle:@"" message:@"感谢你对我们提出的意见或建议,你的支持就是我们进步的动力!" delegate:self cancelButtonTitle:@"我知道了" otherButtonTitles:nil, nil];
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.4f * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
    [alert show];
});
-(void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex{
    if (buttonIndex==0) {
        [self performSelector:@selector(backForward) withObject:nil afterDelay:0.25f];
    }
}

好了的效果如下

时间: 2024-08-07 07:59:55

ios8以后,使用UIAlertViw时pop/push页面后,键盘闪一下的问题的相关文章

VS2017 Xamarin开发Android时首次部署完成后直接闪退

项目属性切换到Android选项,在打包属性上有一个[使用共享运行时]的选项要取消勾选,默认打钩时apk文件比较小,但程序无法运行起来. 取消后安装包一小变成几十M,这个目前好像没什么好的解决办法,毕竟要安装.net的相关东西到手机上才能更快更好的执行程序.

Json数据如果作为配置文件比较难读懂,XML文件作为配置文件有先天的优势,容易读懂和配置,因此不考虑效率时,在页面中宁可用XML文件作为配置文件再用JS做一次转化把XML转成JSON使用

比如如下相对比较复杂的XML <myobjects> <!--object 1--> <myobject> <id>yourID_1</id> <name>your name</name> <description> <![CDATA[Merck Biologics Pilot Plant ]]> </description> <locations> <location

ASIHTTPRequest 未下载完时,离开下载页面后,程序会崩掉

最近使用ASIHTTPRequest下载图片时,在未下载完时跳出下载页面会让程序奔溃. 1 BOOL dataWillBeHandledExternally = NO; 2 3 if ([[self delegate] respondsToSelector:[self didReceiveDataSelector]]) { 4 5 //= YES会导致未下载完后离开下载页面后,程序会崩掉 6 7 dataWillBeHandledExternally = NO; 8 9 } 10 11 #if

queue for max elem, pop, push

个人信息:就读于燕大本科软件工程专业 目前大三; 本人博客:google搜索"cqs_2012"即可; 个人爱好:酷爱数据结构和算法,希望将来从事算法工作为人民作出自己的贡献; 博客内容:queue for max elem, pop, push; 博客时间:2014-4-15; 编程语言:C++ ; 编程坏境:Windows 7 专业版 x64; 编程工具:vs2008 32位编译器; 制图工具:office 2010 ppt; 硬件信息:7G-3 笔记本; my words Don

关闭open页面时刷新父页面列表

var winObjEI = window.open("/Invoice/InvoiceViewEI?invoiceid=" + data.InvoiceId); var isClose = 1; //关闭open页面时刷新父页面列表 var loop = setInterval(function () { if (winObjEI.closed && isClose == 1) { isClose--; //这里写刷新代码 } }, 1000); isClose字段保

js父页面调用子页面数据时,子页面通过父页面传过来的参数回调父页面具体方法

今天写代码时发现同一页面多个地方需要调用同一个子页面,如果多个方法调用时,同一子页面回调父页面方法则会出问题,所以查了下资料,让这个功能通用化,根据具体方法回调具体父页面方法,顺便总结一下,希望以后可以有用,或许可以帮助需要帮助的人 这里使用 eval() 函数 定义和用法 eval() 函数可计算某个字符串,并执行其中的的 JavaScript 代码. 父页面调用子页面的路径(子页面的路径)如下 http://localhoust:8080/oss-portlet/html/util/area

强制浏览器在点击回退按钮时重载刷新页面

最近在项目中有个场景会涉及到此问题,第一反应是通过header控制估计行不通,使用的浏览器为chrome,点击回退时浏览器并不重新请求服务器也不会重新渲染页面.所以服务器header或页面中的meta信息起不了作用.这样以来,就把解决方式定位在了前端来处理,用浏览器的本地存储设置了一个临时标志位,既页面1请求到页面2时,在页面2写入标志位,在页面1里做检查是否有标志位来进行重载刷新判断.思路很明了,因为项目支持的是H5环境,想通用所有浏览器的话,如使用cookie也可达到同样的目的.

mootools使用Request.send()数据时刷新整个页面

今天使用mootools做ajax登录时使用Request().send()数据时老是刷新整个页面,换成Requesr.JSON()也不行,弄了好长时间,很郁闷啊,最后终于发现onSuccess:function(responseJSON,text){ $('result').set('html',responseJSON.info); if(responseJSON.status==1){ window.location='__ROOT__'; } },中有错误,还是服务器端php反回值不全造

Ajax中主页加载分页面后,分页面js脚本不执行的解决办法

没看懂,稍后再看 Ajax中主页加载分页面后,分页面js脚本不执行的解决办法 最近捣鼓JQuery,其中强大的Ajax系列函数令人印象深刻,所以做项目时毫不犹豫地采用了一下该技术,在主页中动态加载分页面进来,咋看效果 不错,都能实现了第一层次的加载,但深入下去问题就出来了:动态加载进来的页面中外联了js文件,其中的脚本却没有在加载后运行! (脚本在单独浏览该分页面时运行是正常的) 我郁闷了,打开Firefox中的Firebug查看了加载后的主页面中的DOM,所有元素的加载都是正常的啊~ 自己改来