UIButton не нажимается в программировании iPhone - PullRequest
0 голосов
/ 24 марта 2010

Я создал UIButton для вида и действия UIButton [UIButton * button1_obj] Еще одна кнопка [UIButton * button2_obj] создается в том же виде.

Я столкнулся с этими двумя проблемами ... пожалуйста, объясните мне, как действовать.

  1. button1_obj появляется, когда я запускаю свой проект, но он не нажимается и не подсвечивается, и не выдается какое-либо исключение.

  2. При действии button1_obj, button2-obj должен появиться в том же виде, как очистить вид перед размещением button2_obj на нем.

Код вопроса (1):

-(void)start

{

NSLog(@"--------------------------------------------------------------------");

NSLog(@"Entered CView start");

    //define size and position of view 
    subMainView_G_obj = [[UIView alloc] initWithFrame:CGRectMake(0.0, 0.0, 480, 320)]; //initilize the view 
    //subMainView_G_obj.autoresizesSubviews = YES;              //allow it to tweak size of elements in view 

    UIButton_G_obj = [[UIButton buttonWithType:UIButtonTypeRoundedRect] retain];    
    UIButton_G_obj.frame = CGRectMake(100,70, 150, 50);
    UIButton_G_obj.backgroundColor = [UIColor clearColor];
    //UIButton_G_obj.adjustsImageWhenHighlighted = YES;
    [UIButton_G_obj setTitle:@"UI" forState:UIControlStateNormal];
    [UIButton_G_obj addTarget:self action:@selector(action:) forControlEvents:UIControlEventTouchUpInside];
    [subMainView_G_obj addSubview:UIButton_G_obj];

    UIButton_G_obj = [[UIButton buttonWithType:UIButtonTypeRoundedRect] retain];    
    UIButton_G_obj.frame = CGRectMake(100,150, 150, 50);
    UIButton_G_obj.backgroundColor = [UIColor clearColor];
    UIButton_G_obj.adjustsImageWhenHighlighted = YES;
    [UIButton_G_obj setTitle:@"Configuration" forState:UIControlStateNormal];
    [UIButton_G_obj addTarget:self action:@selector(action:) forControlEvents:UIControlEventTouchUpInside];
    [subMainView_G_obj addSubview:UIButton_G_obj];

    NSLog(@"Leaving CView start");
    NSLog(@"--------------------------------------------------------------------");
}

- (void)action:(id) sender
{

    NSLog(@"Inside action method.. On click of First View");
    buttonUIObj = [[UIButton buttonWithType:UIButtonTypeRoundedRect] retain];   
    buttonUIObj.frame = CGRectMake(100,160,100,50);
    [buttonUIObj setTitle:@"Next View" forState:UIControlStateNormal];
    buttonUIObj.backgroundColor = [UIColor clearColor];
    [subMainView_G_obj addSubview:buttonUIObj];

}

я объявил UIButton_G_obj, buttonUIObj, subMainView_G_obj GLOBALLY.

Ответы [ 2 ]

0 голосов
/ 12 декабря 2010

О проблеме 1: Прежде всего обе ваши кнопки названы одинаково. Поэтому у вас есть утечка памяти, потому что вы выделяете место для вашей кнопки дважды. Используйте разные имена для ваших кнопок.

О проблеме 2: Вы можете скрыть кнопку 2, пока кнопка 1 не будет нажата: В -(void)start

UIButton_G_obj_1.tag = 1;
...
UIButton_G_obj_2.hidden = YES;
UIButton_G_obj_2.tag = 2;

А в методе действия вы можете отобразить кнопку:

if (sender.tag == 1) {
    UIButton_G_obj_2.hidden = NO;
}
0 голосов
/ 24 марта 2010

Трудно понять, в чем проблема с button1_obj, не видя код. Однако для (2) вы, вероятно, захотите удалить button1_obj, вызвав [button1_obj removeFromSuperview].

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...