Я делаю кнопку левой панели с настраиваемым видом (btnView). Я хочу, чтобы это представление было расположено на краю экрана, что Swift не позволяет, поскольку он перемещает кнопку панели вправо, если я пытаюсь добавить представление, которое расположено дальше слева. Когда я расширяю фрейм, чтобы он соответствовал моему UIView, он просто сдвигает все, чтобы соответствовать размеру поля.
введите описание изображения здесь <ограничение установлено на уровне примерно 15 пунктов от края. </p>
Включение isUserInteractionEnabled
не влияет на возможность нажатия UIView, он по-прежнему реагирует на эту небольшую область, а не на крайний левый край.
Вот моя кнопка прямо сейчас:
func addBackButton() {
// position of btn view on navbar
let btnView = UIView(frame: CGRect(x:-15.5, y:-6, width: 58.5, height: 44))
// position of label in btn view
let label = UILabel(frame: CGRect(x: 24.5, y: 13, width: 0, height: 0))
label.font = UIFont.systemFont(ofSize: 17)
label.textAlignment = .left
label.textColor = .systemBlue
label.text = "VET"
label.sizeToFit()
btnView.addSubview(label)
let icon = UIImage(systemName: "chevron.left", withConfiguration: UIImage.SymbolConfiguration(pointSize: 23, weight: .medium))
// convert UIImage to UIView
let iconView = UIImageView(image: icon)
// position of icon in btn view
iconView.frame.origin.x = 5.5
iconView.frame.origin.y = 12
btnView.addSubview(iconView)
// make small button to stick the view onto
let backBtn = UIButton(type: .custom)
backBtn.addTarget(self, action: #selector(goBack), for: .touchUpInside)
backBtn.addSubview(btnView)
// make button clickable behind btn view
btnView.isUserInteractionEnabled = false
// convert UIButton to UIBarButtonItem and add to navbar
navigationItem.leftBarButtonItem = UIBarButtonItem(customView: backBtn)
}
Я также попытался добавить вторую кнопку в btnView, чтобы ее можно было правильно расположить, но по какой-то причине она все еще не нажималась, только кнопка панели навигации область ответила.
Есть более простой способ добиться этого? Я хочу избежать дополнительных классов или расширений, которые я видел в некоторых потоках, но сейчас у меня нет более простых вариантов, поэтому я пересматриваю.