Как использовать представления изображений для значков и фон в элементе панели вкладок? - PullRequest
0 голосов
/ 24 сентября 2019

Example of what I need to make

Привет, совершенно новый в настройке панелей вкладок, но провел немало исследований, чтобы найти то, что мне нужно, чтобы получить результат, показанный на рисунке.Нашел много, но не так много, что я могу использовать;установили требуемый отступ для левого и правого краев панели и использовали расширение для UIImage, чтобы получить желтый цвет для свойства selectionIndicatorImage панели, текущий код приведен ниже.Это так далеко, как я пришел.Мне нужно поставить радиус на этом желтом фоне.Мне нужно иметь иконку в предмете такого размера.Я уверен, что это означает, что я не могу просто установить свойство изображения самого элемента, так как я понимаю, что он должен быть определенного размера ( Размер значка панели вкладок ) Внутри первых 2 элементов вкладки мне также нужнопоместите вторую меньшую иконку к верхнему левому краю основного.Я понял, что мне нужно использовать представления изображений для всего, чтобы получить то, что я сказал выше, но я изо всех сил пытаюсь найти примеры, которые я могу использовать, что использовать для их создания, как добавить их к элементу вкладки и как расположитьих.Просто чтобы быть как можно более ясным: я не хочу использовать tabBarItem.image = какое-то изображение.Я хочу не использовать это свойство и просто отображать представление изображения со значком правильного размера, занимающего ту же позицию, которая назначена свойству tabBarItem.image.Я хочу обойти свойства вкладок, данные мне, и использовать вместо этого представления изображений.Любая помощь будет очень ценится.

// From the tab bar controller. 
override func viewWillLayoutSubviews() {
        super.viewWillLayoutSubviews()
        self.tabBar.frame = self.tabBar.frame.insetBy(dx: 7, dy: 0) 

        let numberOfTabs = CGFloat(tabBar.items!.count)
        let tabItemSize = CGSize(width: tabBar.frame.width / numberOfTabs, height: tabBar.frame.height )
        tabBar.selectionIndicatorImage = UIImage.imageWithColor(color: UIColor.customColoursForAllElements(colourName: "menu yellow"), size: tabItemSize)
    }
    override func viewDidLayoutSubviews() {
        super.viewDidLayoutSubviews()
        tabBar.invalidateIntrinsicContentSize()
    }
extension UIImage {
    class func imageWithColor(color: UIColor, size: CGSize) -> UIImage {
        let rect: CGRect = CGRect(x: 0, y: 10, width: size.width, height: size.height - 15)
        UIGraphicsBeginImageContextWithOptions(size, false, 0)
        color.setFill()
        UIRectFill(rect)
        let image: UIImage = UIGraphicsGetImageFromCurrentImageContext()!
        UIGraphicsEndImageContext()

        return image
    }
}
...