Как сохранить изображения в программно созданных кнопках UIB от масштабирования? - PullRequest
1 голос
/ 02 марта 2011

Я создаю серию UIButtons из NSArray of UIImages со следующим:

#define BUTTONWIDTH 66

    for (int i = 0; i < [imgArray count]; i++){
        toolTile = [UIButton buttonWithType:UIButtonTypeRoundedRect];
        buttonRect = CGRectMake((BUTTONWIDTH*i)+i, 0, BUTTONWIDTH, BUTTONWIDTH);
        toolTile.frame = buttonRect;
        toolTile.tag = i;
        [toolTile addTarget:self action:@selector(toolTileClick:) forControlEvents:UIControlEventTouchUpInside];
        toolTile.imageView.contentMode = UIViewContentModeCenter;
        [toolTile setBackgroundImage:[imgArray objectAtIndex:i] forState:UIControlStateNormal];
        [[self view] addSubview:toolTile];
    }

К сожалению, изображения масштабируются (взрываются), чтобы заполнить плитку 66x66.Я хочу, чтобы они были в центре 1: 1 на плитке - предположительно, toolTile.imageView.contentMode = UIViewContentModeCenter должно это сделать.Я пытался переместить эту строку раньше, после setBackgroundImage: -не повезло.Чего мне не хватает?

1 Ответ

2 голосов
/ 10 мая 2012

Виновник использовал setBackgroundImage:forState:[UIControlState] вместо setImge:forState:[UIControlState].

SetBackgroundImage, очевидно, всегда масштабируется, SetImage: соблюдает imageView.contentMode.

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