Sam*_*Sam 7 iphone cocoa-touch objective-c uibutton uialertview
所以我试图在UIAlertView中嵌入一个可切换的(是一个单词吗?)"不再显示这个"按钮,但是我遇到了一些我似乎无法绕过的麻烦.
这是我迄今为止的非工作代码......
编辑:我添加了按钮的方法,并对原始代码进行了一些更改.现在我按下按钮对印刷机作出反应,但结果是崩溃.有帮助吗?
if (![[NSUserDefaults standardUserDefaults] objectForKey:@"disclaimer"]){
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"DISCLAIMER"
message:@"This program is a blah blah"
delegate:self
cancelButtonTitle:nil
otherButtonTitles:@"I Agree", nil];
UILabel *alertLabel = [[UILabel alloc] initWithFrame:CGRectMake(30, 230, 260, 50)];
alertLabel.backgroundColor = [UIColor clearColor];
alertLabel.textColor = [UIColor whiteColor];
alertLabel.text = @"Do not show again";
[alert addSubview:alertLabel];
[alertLabel release];
//declared alertCheckboxButton in the header due to errors I was getting when referring to the button in the button's method below
alertCheckboxButton = [UIButton buttonWithType:UIButtonTypeCustom];
alertCheckboxButton.frame = CGRectMake(200, 247, 16, 16);
alertCheckboxButton.backgroundColor = [UIColor clearColor];
UIImage *alertButtonImageNormal = [UIImage imageNamed:@"checkbox.png"];
UIImage *alertButtonImagePressed = [UIImage imageNamed:@"checkbox-pressed.png"];
UIImage *alertButtonImageChecked = [UIImage imageNamed:@"checkbox-checked.png"];
[alertCheckboxButton setImage:alertButtonImageNormal forState:UIControlStateNormal];
[alertCheckboxButton setImage:alertButtonImagePressed forState:UIControlStateHighlighted];
[alertCheckboxButton setImage:alertButtonImageChecked forState:UIControlStateSelected];
[alertCheckboxButton addTarget:self action:@selector(alertCheckboxButtonClicked:) forControlEvents:UIControlEventTouchUpInside];
//made the button a subview of alert rather than alertLabel
[alert addSubview:alertCheckboxButton];
[alert show];
//moved alertCheckboxButton release to (void)dealloc
[alert release];
}
-(void)alertCheckboxButtonClicked{
if (![[NSUserDefaults standardUserDefaults] objectForKey:@"disclaimer"]){
[[NSUserDefaults standardUserDefaults] setBool:TRUE forKey:@"disclaimer"];
alertCheckboxButton.selected = YES;
}else {
[[NSUserDefaults standardUserDefaults] removeObjectForKey:@"disclaimer"];
alertCheckboxButton.selected = NO;
}
}
Run Code Online (Sandbox Code Playgroud)
如果您想将此按钮设置为切换按钮,请为该按钮分配一个标签,然后在其事件函数中检查标签是否为 0,然后将其设置为 1,并在那里设置一个 BOOL。当您将其添加到警报中时,请检查 BOOL 值(如果为真),同时更改按钮图像和标签。
| 归档时间: |
|
| 查看次数: |
5129 次 |
| 最近记录: |