UIButton изменен в соответствии с UIImage - PullRequest
0 голосов
/ 31 января 2019
    let btn = UIButton(frame: CGRect.zero)
    btn.setImage(..., for: UIControlState.normal)
    addSubview(btn)
    btn.translatesAutoresizingMaskIntoConstraints = false
    btn.rightAnchor.constraint(equalTo: btn.superview!.rightAnchor, constant: -32).isActive = true
    btn.topAnchor.constraint(equalTo: btn.superview!.topAnchor, constant: 6 + vc.view.safeAreaInsets.top).isActive = true
    btn.widthAnchor.constraint(equalToConstant: 32)
    btn.heightAnchor.constraint(equalToConstant: 32)

    btn.backgroundColor = .black //to check the rect

Размер изображения 16х16.Кнопка должна быть как минимум в два раза больше (из-за небольшой сенсорной области).

Но когда я запускаю приложение, кнопка становится 16x22 (22 - высота).В «иерархии представления отладки» я также вижу, что его ограничения становятся width==16 и height==22.В то же время ограничения по расстоянию работают нормально.

Так в чем же моя ошибка?Или я должен использовать ресурсы изображения, которые соответствуют кнопкам 1: 1?

1 Ответ

0 голосов
/ 31 января 2019

Попробуй это.Он сообщает кнопке, что она не должна обнимать ее содержимое, и распространяется в соответствии с другими ее ограничениями:

btn.setContentHuggingPriority(.defaultLow, for: .horizontal)
btn.setContentHuggingPriority(.defaultLow, for: .vertical)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...