UIButton не слушает настройки режима контента? - PullRequest
85 голосов
/ 01 июня 2010

firstButton - это UIButton типа Custom. Я программно помещаю три из них в каждую ячейку таблицы, таким образом:

[firstButton setImage:markImage forState:UIControlStateNormal];
[firstButton setContentMode:UIViewContentModeScaleAspectFit];
[cell.contentView addSubview:firstButton];

В других местах я говорю обрезать границы. То, что я получаю, это обрезка центрального квадрата изображения, а не его масштабное отображение. Я перепробовал множество способов, включая установку свойства mode для firstButton.imageView, который также, похоже, не работает.

Ответы [ 15 ]

1 голос
/ 01 июня 2010

Вместо setImage попробуйте setBackgroundImage

0 голосов
/ 20 сентября 2016

Если UIButton, похоже, не слушает настройки ограничения макета, проверьте, не превышают ли изображения размер кнопки. Всегда используйте изображения @ 2x и @ 3x для разрешения сетчатки.

0 голосов
/ 21 июня 2013

Если кто-то ищет ответ, который работает в iOS 6, iOS 7 и раскадровке:

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

enter image description here

А потом:

for(UIView* testId in self.subviews) {
    if([testId isKindOfClass:[UIImageView class]])
        [testId setContentMode:UIViewContentModeScaleAspectFill];
}
0 голосов
/ 29 февраля 2012

Пытаясь выяснить это, мой метод со временем стал немного хакерским, и я завел подкласс UIButton и переопределил setHighlighted:

Для меня это просто сбить изображение с альфа на .5, потому что они на черном фоне.

Однако, это работает, только если я закомментирую [super setHighlighted:] (где, кажется, происходит код растягивания изображения), который просто не кажется правильным способом решить это вообще ... все кажется, работает нормально, хотя. Посмотрим, как это будет продолжаться, пока я буду над этим работать.

- (void)setHighlighted:(BOOL)highlight {
    if (highlight) {
        [self.imageView setAlpha:.5];
    }  else {
        [self.imageView setAlpha:1];        
    }

//    [super setHighlighted:highlight];
}
0 голосов
/ 07 октября 2010

Я также советую взглянуть на свойство adjustsImageWhenHighlighted UIButton, чтобы избежать странных деформаций изображения при нажатии кнопки.

...