题
我已经稍高移动警报视图,所以我可以适合在屏幕上键盘以及。我只是抓住了警报的框架和更改y后,我已经表明了警报,使画面的变量是合法的做到这一点。这工作正常,在模拟器上,但我这样做对硬件时,警报在正确的位置开始,但随后几乎立即跳下到原来的垂直中心的地方。在UIAlertView中的立场,即不应该固定事每实用性准则,以改变还是我只是做一些错误的?
谢谢!
解决方案
什么OS是你想责备?我得到这个对OS 3.0模拟器和操作系统都工作3.0设备:
UIAlertView * alert = [ [ UIAlertView alloc ] initWithTitle:@"Alert" message:@"Alert"
delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil ];
alert.transform = CGAffineTransformTranslate( alert.transform, 0.0, 100.0 );
[ alert show ];
CGAffineTransformTranslate
有三个参数:现有变换中,x变换,和y变换。在我以前的例子中,警报视图中显示比通常那样高100个像素。试试这个,看看会发生什么。
另外,我敢肯定,你可以显示警报之前修改的框架,因为它有可能在init
设置警报的框架是在默认情况下整个屏幕的中央。
其他提示
由于iOS4的周围UIAlertViews移动变得棘手。我注意到,如果你在UIAlertView中添加的UITextField子视图,对iOS4的警报被向上移动,使得键盘不重叠的。这不会发生 另外我注意到,该警报的框架未初始化节目叫即使经过,所以做一个相对CGAffineTransformation没有简单的程序化的方式。唯一的解决办法是基于所述OS版本进行条件的变换。 对我来说这看起来像穿了UIAlertViews的无证行为是随时可能更改。我不认为苹果意味着我们可以用任何东西比文字和按钮(即使他们自己的应用打破了这一规则)。 我的人会开始构建自己的自定义提醒这种类型的场景。
不是一个警报意味着是模式 - 即:你一般不会执行任何其他用户输入,同时警报是活性?如果是这种情况,那么你为什么会需要键盘的知名度?