gpt4 book ai didi

背景中的 iPhone/iPod 按钮剪切到 UIAlertView TextBox

转载 作者:搜寻专家 更新时间:2023-10-30 19:47:45 24 4
gpt4 key购买 nike

当我在 UIAlertView 的文本框中输入内容时,背景中的 ImageButton 开始切换。只有当文本靠近图像时才会发生这种情况。

The problem

alertview的代码如下:

UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"... number"
message:nil
delegate:self
cancelButtonTitle:@"Cancel"
otherButtonTitles:@"Ok", nil];

[alert setAlertViewStyle:UIAlertViewStylePlainTextInput];
[[alert textFieldAtIndex:0] setKeyboardType:UIKeyboardTypeNumberPad];
[[alert textFieldAtIndex:0] becomeFirstResponder];
[alert setTag:1];
[alert setOpaque:true];
[alert show];

//EDIT
-(void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{
if (alertView.tag == 2)
{
NSString* title = [alertView buttonTitleAtIndex:buttonIndex];
if ([title isEqualToString:@"Cancel"])
{
[self doSomething1];
}

if([alertView.title isEqualToString:@"Are you sure?"] && [title isEqualToString:@"YES"])
{
[self doSomething2];
}
}
}

- (BOOL)alertViewShouldEnableFirstOtherButton:(UIAlertView *)alertView
{
if (alertView.tag == 1){
NSString *inputText = [[alertView textFieldAtIndex:0] text];
if( [inputText length] == 10 )
{
NSUserDefaults* def = [NSUserDefaults standardUserDefaults];

[def setObject:inputText
forKey:@"FIELD"];
[def synchronize];
return YES;
}
else
{
return NO;
}
}
return YES;
}

我试过将它设置为不透明,我试过寻找 z-indexing 值,我也试过将图像缩小到它需要的最小值。截取屏幕截图没有帮助。这只发生在 iOS 7 中。

最佳答案

UIAlertView 不会显示在与其他 View Controller 相同的 UIWindow 中。它们显示在自己的 UIWindow 中,窗口级别为 UIWindowLevelAlert。这个其他窗口是透明的(大部分)并呈现在主窗口的顶部。这使得 UIAlertView 对象不能很好地与屏幕上的其他 View 交互。不要修改底层 UIView 类的任何属性。

上面显示的代码有 if (alertView.tag == 1) 以及 if (alertView.tag == 2),但它只会创建标签值为 1 的 UIAlertView。您是否在其他地方创建了第二个警报?您是否可能在第一个警报完成其消失动画之前显示第二个警报?众所周知,这会导致图形撕裂。

委托(delegate)方法 -alertViewShouldEnableFirstOtherButton: 可以从 UIAlertView 的 -drawRect: 方法中调用。 draw 方法必须非常快,以免造成图形撕裂。您调用 NSUserDefaults -synchronize,它执行磁盘写入操作。除了确定响应值之外,您不应在 -alertViewShouldEnableFirstOtherButton: 方法中执行任何操作。如果您想收到文本字段更改的通知,请将自己指定为 UITextFieldDelegate 并实现 -textField:shouldChangeCharactersInRange:replacementString:。该方法应该是安全的,可以从中调用 NSUserDefaults -synchronize

作为额外的提示,您可以使用 PSPDFAlertView 使您的代码更易于管理。 .

关于背景中的 iPhone/iPod 按钮剪切到 UIAlertView TextBox,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19313174/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com