просмотр xcode UIBarButtonItem

#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 ни на что не влияет