Вертикальное выравнивание UIImageView добавлено как rightView текстового поля с текстом skyfloatinglabeltextfield
Я добавил checkmarkImageView в качестве правого вида skyfloatinglabeltextfield следующим образом:
let checkmark = UIImage(named: "checkmark")
checkmarkImageView = UIImageView(image: checkmark)
checkmarkImageView?.frame = CGRect(x: 0.0, y: 0.0, width: 20.0, height: 20.0)
textfield?.rightView = checkmarkImageView
textfield?.rightViewMode = .always
editView.addSubview(textfield!)
Это не выравнивание по вертикали центра с текстом текстового поля. Как мне этого добиться?

2 ответов:
Изменить
frame.offsetBy, я использовал текстовое полеBorder StyleкакPlainlet rightVie = UIView() rightVie.backgroundColor = UIColor.clear checkmarkImageView = UIImageView(image: UIImage(named: "checkmark")) // use your imageView // checkmarkImageView?.frame = CGRect(x: 0.0, y: 0.0, width: 20.0, height: 20.0) checkmarkImageView.frame = checkmarkImageView.frame.offsetBy(dx: 0, dy: -1 + textfield.titleHeight()/2) rightVie.frame = checkmarkImageView.frame rightVie.addSubview(checkmarkImageView) //use your textfield name textfield?.rightView = rightVie textfield?.rightViewMode = .alwaysВывод
Попробуйте изменить фрейм
checkmarkImageViewна:checkmarkImageView?.frame = CGRect(x: 0.0, y: 0.0, width: 20.0, height: textfield.bounds.height)И, пожалуйста, добавьте скриншот кадров, которые вы получаете от отладчика пользовательского интерфейса.
Редактировать:
checkmarkImageView?.contentMode = .scaleAspectFitEdit-2:
Чтобы получить высоту текста, используйте:
let textHeight = text.size(withAttributes: [NSAttributedStringKey.font: UIFont.openSansBold(size: 10)]).heightДобавьте атрибуты в соответствии с вашими требованиями.
Дайте мне знать, если вы все еще сталкиваетесь с какими-либо проблемами.

Comments