【发布时间】:2015-04-17 08:39:35
【问题描述】:
我已将 CheckBox 添加到 AlertView 现在我想将 TextField 也添加到同一个 AlertView 中。
UIAlertView *alertForExistingCredit = [[UIAlertView alloc] init];
rememberButton = [[UIButton alloc] init];
UIView *v = [[UIView alloc] init];
[rememberButton setImage:[UIImage imageNamed:@"PortraitPhoto_Checkbox-Normal.png"]
forState:UIControlStateNormal];
[rememberButton setTitle:@"Save Code" forState:UIControlStateNormal];
[rememberButton addTarget:self action:@selector(toggleRememberMethod) forControlEvents:UIControlEventTouchUpInside];
alertForExistingCredit = [[UIAlertView alloc] initWithTitle:@"PrePay Code"
message:@""
delegate:self
cancelButtonTitle:kCancelMessage
otherButtonTitles:kAlertOkMessage, nil];
[v addSubview:rememberButton];
如果我使用:
//plain text part
// alertForExistingCredit.alertViewStyle = UIAlertViewStylePlainTextInput;
// [[alertForExistingCredit textFieldAtIndex:0] setPlaceholder:@"PrePay Code"]; this lines of code it is not showing on the screen
if (floor(NSFoundationVersionNumber) > NSFoundationVersionNumber_iOS_6_1) {
v.frame = CGRectMake(0, 0, 250, 40);
rememberButton.frame = CGRectMake(0.0, 0, 250, 50.0);
[rememberButton setTitleColor:[UIColor blackColor]
forState:UIControlStateNormal];
alertForExistingCredit.message = @"Please insert your PrePay code";
[alertForExistingCredit setValue:v forKey:@"accessoryView"]
}else {
v.frame = CGRectMake(0, 80, 250, 40);
rememberButton.frame = CGRectMake(0.0, 0, 250, 40.0);
alertForExistingCredit.message = @"Please insert your PrePay code";
[alertForExistingCredit addSubview:v];
}
alertForExistingCredit.tag = 0;
[alertForExistingCredit show];
}
【问题讨论】:
-
正如
UIAlertView的文档中明确指出的那样,您不应更改视图层次结构。因此,您需要创建自己的视图来显示并且不应该使用UIAlertView -
使用自定义视图,可能还有来自 github 的第 3 方警报视图
-
试试this可能对你有帮助
-
你们还有其他解决方案吗?
-
请分享预期输出的屏幕截图
标签: ios checkbox uiview uialertview textfield