Элемент панели кнопок не может работать - PullRequest
0 голосов
/ 22 ноября 2011
-(IBAction)startClick:(id)sender{
 stick.highlighted = YES;
}

-(void)viewDidLoad{  
 [super viewDidLoad];  
 stick = [[UIImageView alloc]initWithImage:[UIImage imageNamed:@"ball1.png"]];
 stick.userInteractionEnabled= YES;

 stick.highlightedImage = [UIImage imagedNamed:@"ball2.png"];
 [self.view addSubview:stick]; 
}

Кнопка не работает после ввода метода viewDidLoad.Пожалуйста, помогите.Спасибо.Палка связана с uiimageview.

Ответы [ 2 ]

0 голосов
/ 22 ноября 2011

Привет, как вы сказали, флешка связана с UIImageView, тогда это немного двусмысленно. Неясно, объявили ли вы IBOutlet для этого и подключились к UIImageview в xib, или вы объявили его как переменную в заголовочном файле. Есть два метода, оба из которых работают нормально

Метод 1:

Объявите IBoutlet в файле .h и подключите его к Imageview в xib. Вызов методов следующим образом

-(void)viewDidLoad{  
    [super viewDidLoad];  
    stick.image = [UIImage imageNamed:@"firstImage.png"];
    stick.highlightedImage = [UIImage imageNamed:@"secondImage.png"];
}

-(IBAction)startClick:(id)sender{
    stick.highlighted = YES;
}

будет служить вашей цели. Метод вызывается из кнопки в xib при событии touch up in. Если вы хотите вызвать этот метод из кнопки панели, все, что вам нужно, это подключить селектор кнопки панели к методу startclick.

// Второй метод

Если вы объявили свой Imageview в заголовке как UIImageView * stick;

в методе viewDidLoad вам нужно выделить его как

-(void)viewDidLoad{  
    [super viewDidLoad];  

    if (!stick) {
        stick = [[UIImageView alloc] initWithFrame:CGRectMake(50, 50, 100, 100)];
        [stick setImage:[UIImage imageNamed:@"firstImage.png"]];
        [stick setHighlightedImage:[UIImage imageNamed:@"secondImage.png"]];
    }

    UIBarButtonItem* barButton = [[UIBarButtonItem alloc] initWithTitle:@"Click" style:UIBarButtonItemStylePlain 
                                                                 target:self action:@selector(startClick:)];
    self.navigationItem.rightBarButtonItem = barButton;
    [barButton release];

}

-(void)startClick:(id)sender{
    stick.highlighted = YES;
}

Надеюсь, это поможет !!

0 голосов
/ 22 ноября 2011

может быть связано с:

-(void)viewDidLoad
{  
 [super viewDidLoad];  
 stick = [UIImageView alloc]initWithImage:[UIImage imageNamed:@"ball1.png"];
 stick.userInteractionEnabled= YES;

// stick.highlightedImage = [UIImage imaged:@"ball2.png"];

 stick.highlightedImage = [UIImage imageNamed:@"ball2.png"];
 [self.view addSubview:stick]; 
}
...