如何在UIAlertView内创建自定义UIButton

| 因此,我试图在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;
    }

}
    
已邀请:
如果要使该按钮为切换按钮,则为该按钮分配标签,然后在其事件功能中检查标签是否为0,然后将其设置为1,并在那里设置BOOL。当您将其添加到警报中时,请检查BOOL值(如果正确),同时更改按钮图像和标签。     
H!我的代码有效。只需删除@selector(alertCheckboxButtonClicked :)中的: 总是不是很简单?     
我认为您只是想切换UIControl的\“ selected \”属性。当\“ selected \”为YES时,将使用UIControlStateSelected的图像... 典型的iOS等效于复选框的是UISwitch,它具有\“ on \”属性。     

要回复问题请先登录注册