Кнопка UIB с заголовком и изображением, выбранный системой фон не содержит изображения - PullRequest
0 голосов
/ 07 декабря 2018

У меня есть UIB-кнопка типа .system, которую я создаю программно с помощью Swift 4. Она имеет заголовок и изображение, и я переключаю isSelected на и выключая при касании.Когда я включаю его, вокруг заголовка изображения добавляется прекрасный цветной фон, но он не распространяется достаточно далеко, чтобы включить изображение.Эти картинки объясняют гораздо лучше, чем я:

Unselected Selected

Есть ли способ заставить этот фон еще больше расширятьсятак значит иконка это часть?Я не против изменить цвет значка вручную, но все, что я пробовал (titleEdgeInsets, contentEdgeInsets), просто переместило заголовок и фон, фактически не расширяя его.

Я бы предпочел сохранить кнопкукнопка .system, а не .custom, и мне нравится, что рамка кнопки (и, следовательно, сенсорная область) больше, чем этот цветной фон, потому что это облегчает прикосновение, я думаю, если бы я установил сплошной цветbackgroundImage, чтобы эмулировать эффект, который я должен был бы уменьшить, чтобы соответствовать области касания, чего я не хочу.

Любая помощь будет наиболее ценной!Заранее спасибо!

Редактировать: я добавил изображение с button.layer.borderWidth = 1, чтобы показать фактический кадр кнопки и его отличие от фона isSelected, который появляется вокруг заголовка.(Серый цвет, потому что он находится в сгруппированном табличном представлении)

enter image description here

1 Ответ

0 голосов
/ 08 декабря 2018

Короткий ответ - кнопка .system, на самом деле ожидает только изображение или заголовок, но не оба.( См. Это для более полной матрицы, освещающей вашу проблему )

В действительности нет ничего особенного в кнопке .system для вашего случая.Создайте кнопку .custom и округлите button.layer.cornerRadius, чтобы получить угловой эффект.

...