#ios #swift #xcode #view #uibarbuttonitem
#iOS #swift #xcode #Вид #uibarbuttonitem
Вопрос:
В моем проекте Xcode у меня есть класс view controller
class ViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {
@IBOutlet weak var refreshButton: UIBarButtonItem!
var refreshUiButton = UIButton()
override func viewDidLoad() {
super.viewDidLoad()
refreshUiButton.setImage(#imageLiteral(resourceName: "refresh"), for: .normal)
refreshUiButton.imageView?.contentMode = UIViewContentMode.scaleAspectFit
refreshUiButton.addTarget(self, action: #selector(didRefreshClicked(_:)), for: .touchUpInside)
refreshButton.customView = refreshUiButton
}
и вот как это выглядит
Кнопка закрывает сегментированный элемент управления в середине панели навигации.У меня есть расширение для UIButton, из-за него я хочу использовать UIButton в качестве пользовательского представления для UIBarButtonItem.
Я хочу, чтобы это выглядело так
Как я могу это организовать?
Комментарии:
1. используете ли вы элемент кнопки UIRightbar? или нет?
2. ДА. кнопка обновления находится на правой панели. Это видно на втором рисунке.
3. Почему вы хотите, чтобы UIButton в кнопке UIBar была какая-то конкретная причина?
4. Да, у меня есть расширение для UIButton, и я хочу просмотреть его на панели навигации
5. Хорошо, вам нужно установить фрейм refreshUiButton относительно фрейма UIBarButton.
Ответ №1:
Кажется, что изображение вашей кнопки имеет неправильный размер. Если я прав, вам нужны размеры в соответствии с человеческим дизайном. Или вы можете изменить цвет оттенка для системного элемента BarButtonItem на черный.
Комментарии:
1. Обновить UIButton.ImageView? .contentMode = UIViewContentMode.scaleAspectFit. Я думаю, что неважно, какие размеры имеет мое изображение.
2. @VahagChakhoyan Я только что проверил это. Когда я использую изображение размером 500×76 пикселей, оно растягивается до заголовка навигации. Я установил меньший размер, и все в порядке. Я полагаю, что UIBarButtonItem принимает размер CustomView, а CustomView принимает размер его содержимого. Содержимое кнопки соответствует размеру изображения. Таким образом, contentMode ни на что не влияет