Пользовательское действие кнопки Alertview не вызывается

Я создаю собственное представление предупреждений с фоновым изображением и одной кнопкой (чтобы закрыть представление предупреждений). Но действие кнопки не вызывается

введите здесь описание изображения

вот мой код.

В файле .h

UIAlertView *alert;

В файле .m

alert = [[UIAlertView alloc] init];

            [alert setTitle:nil];
            [alert setMessage:nil];
            [alert setDelegate:self];


            UIImage *alertImage = [UIImage imageNamed:@"stopthegame.png"];
            UIImageView *backgroundImageView = [[UIImageView alloc] initWithImage :alertImage];

            backgroundImageView.frame = CGRectMake(0, 0, 282, 160);

            backgroundImageView.contentMode = UIViewContentModeScaleToFill;

            [alert addSubview:backgroundImageView];




   UIButton *alertok = [UIButton buttonWithType:UIButtonTypeCustom];


            alertok.frame = CGRectMake(105, 110, 75,40);

            UIImage *buttonImageNormal = [UIImage imageNamed:@"yesorno.png"];
            UIImage *strechableButtonImageNormal = [buttonImageNormal stretchableImageWithLeftCapWidth:12 topCapHeight:0];
            [alertok setBackgroundImage:strechableButtonImageNormal forState:UIControlStateNormal];
            UIImage *buttonImagePressed = [UIImage imageNamed:@"instructionok.png"];
            UIImage *strechableButtonImagePressed = [buttonImagePressed stretchableImageWithLeftCapWidth:12 topCapHeight:0];
            [alertok setBackgroundImage:strechableButtonImagePressed forState:UIControlStateHighlighted];

            [alertok setTitle:@"OK" forState:UIControlStateNormal];
            [alertok setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal ];


           [alert addSubview:alertok ]; 

[alertok addTarget:self action:@selector(buttonClicked:) forControlEvents:UIControlEventTouchUpInside];



 [alert show];

Вот код для отклонения предупреждения

- (IBAction)buttonClicked:(id)sender
{

    [alert dismissWithClickedButtonIndex:0 animated:YES];

}

кто-нибудь, пожалуйста, помогите. заранее спасибо


person Siba Prasad Hota    schedule 27.03.2012    source источник
comment
Также одно сомнение: Apple примет этот настраиваемый вид оповещения или нет?   -  person Siba Prasad Hota    schedule 27.03.2012
comment
Зачем вам нужна кнопка для закрытия UIAlertView, если у вас есть нативные?   -  person fabregas88    schedule 27.03.2012
comment
Действительно ли метод buttonClicked: не вызывается или оповещение просто не отклоняется?   -  person rosslebeau    schedule 27.03.2012
comment
Обратите внимание, что инженеры Apple много раз прямо заявляли в видеороликах WWDC и на форумах разработчиков, что вам не следует погружаться в частные иерархии подпредставлений, как с UIAlertView. Вы должны написать свой собственный класс представления предупреждений.   -  person Mike Weller    schedule 27.03.2012
comment
Да, это правда, потому что тогда у вас будут проблемы с совместимостью. Итак, или вы пишете свой собственный AlertView, как сказал Майк, или используете UIAlertView. Если вам нужно знать, как использовать UIAlertView, скажите мне, и я напишу вам пример.   -  person fabregas88    schedule 27.03.2012
comment
Спасибо Всем за ответ. На самом деле предупреждение отображается так, как мне нужно (как на картинке), но я не могу его отклонить. Есть ли идея отклонить его?   -  person Siba Prasad Hota    schedule 28.03.2012


Ответы (1)


Что-то подобное вы создаете в пользовательском подклассе UIView и вызываете его при необходимости. https://github.com/FreeApple/CustomAlertView

+(void)showCustomPop:(CustomAlertViewType)type inView:(UIView*)view WithTitle:(NSString    
*)title Message:(NSString *)message  actionButtonTitle:(NSString*)actionTitle 
action:(void*)sel cancelButtonTitle:(NSString *)cancelTitle;
person FreeAppl3    schedule 17.04.2012
comment
Спасибо за ответ. Но не могли бы вы прояснить это с помощью некоторых примеров кодов? - person Siba Prasad Hota; 17.04.2012
comment
Я могу сделать лучше.... Вот пример проекта, который я построил. Я публикую это не для того, чтобы люди просто использовали их в своих проектах, а для того, чтобы они могли учиться на том, что узнал я. Если вы решите использовать это или код в любом из ваших проектов, пожалуйста, отметьте, где вы это делаете. Вот проект github.com/FreeApple/CustomAlertView. - person FreeAppl3; 18.04.2012