UIButton не слушает установку режима содержания?

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

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

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

89
задан Cœur 27 May 2019 в 15:06
поделиться

3 ответа

У меня была такая же проблема. Я вижу, что этот вопрос немного устарел, но я хочу дать четкий и правильный ответ, чтобы сэкономить время других людей (как и я), когда он появится в результатах поиска.

Мне потребовалось немного поиска и экспериментов, но я нашел решение. Просто установите ContentMode "скрытого" ImageView, который находится внутри UIButton.

[[firstButton imageView] setContentMode: UIViewContentModeScaleAspectFit];
[firstButton setImage:[UIImage imageNamed:imageName] forState:UIControlStateNormal];

Возможно, именно на это намекал Дэн Рэй в своем принятом ответе, но я подозреваю, что нет.

185
ответ дан 24 November 2019 в 07:08
поделиться

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

1
ответ дан 24 November 2019 в 07:08
поделиться

Ответ состоит в том, чтобы использовать UIImageView со всеми прекрасными настройками режима содержимого, которые вы хотите, а затем расположить поверх него настраиваемую кнопку. Тупой, что вы не можете сделать это за один раз, но похоже, что вы не можете.

6
ответ дан 24 November 2019 в 07:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: