Установка UIImage в качестве фона UIButton - PullRequest
0 голосов
/ 24 февраля 2012

Что не так со следующим фрагментом кода:

    UIButton *button = [[UIButton alloc]init];
    CGRect frame = CGRectMake(180, 10, 33, 33);
    button.frame = frame;
    button.tag = 1001;
    UIImage *image = [[[UIImage alloc]init]autorelease];
    image = [UIImage imageNamed:@"icon.png"];
    [button setBackgroundImage:image forState:UIControlStateNormal];
    [image release];
    [button release];

Если это не так, где требуется исправление и почему?

Ответы [ 3 ]

6 голосов
/ 24 февраля 2012

Я вижу несколько проблем:

  1. Вы отправили автоматическое обновление изображения, а затем отпустили его вручную.
  2. Вы отпустили кнопку, но не добавили ее в качестве подпредставления ни к чему,Так что, по сути, вы сделали все это даром.
  3. Вы создаете экземпляр UIImage, а затем создаете его снова.в следующей строке: Вместо этого просто выполните: UIImage *image = [UIImage imageNamed:@"icon.png"]; и удалите операторы UIImage *image = [[[UIImage alloc]init]autorelease]; и [image release];.
4 голосов
/ 24 февраля 2012

Вы можете попробовать это

UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
button.frame = CGRectMake(180, 10, 33, 33);;
button.tag = 1001;
UIImage *image = [UIImage imageNamed:@"icon.png"];
if (image == nil) {
    NSLog(@"can't find icon.png");
} else {
    [button setBackgroundImage:image forState:UIControlStateNormal];
}
//add button to the parent's view
0 голосов
/ 24 февраля 2012

Вы убедились, что image не nil?

...