Как изменить ширину tabBarController и сделать его радиус - PullRequest
0 голосов
/ 05 апреля 2019

импорт UIKit

class Логин: UIViewController, UITextFieldDelegate {

override func viewDidLoad() {
    super.viewDidLoad()
    self.tabBarController?.tabBar.layer.cornerRadius = 15
}

enter image description here

Ответы [ 2 ]

1 голос
/ 05 апреля 2019

Это расширения, которые вы можете использовать и делать радиусную тень для панели вкладок в представлениях кнопок, даже на панели навигации. Просто поместите этот код в конец класса, а в инспекторе справа вы увидите различные контроллеры, которые могут вам помочь :)

extension UIView {

    @IBInspectable
    var cornerRadius: CGFloat {
        get {
            return layer.cornerRadius
        }
        set {
            layer.cornerRadius = newValue
        }
    }

    @IBInspectable
    var borderWidth: CGFloat {
        get {
            return layer.borderWidth
        }
        set {
            layer.borderWidth = newValue
        }
    }

    @IBInspectable
    var borderColor: UIColor? {
        get {
            if let color = layer.borderColor {
                return UIColor(cgColor: color)
            }
            return nil
        }
        set {
            if let color = newValue {
                layer.borderColor = color.cgColor
            } else {
                layer.borderColor = nil
            }
        }
    }

    @IBInspectable
    var shadowRadius: CGFloat {
        get {
            return layer.shadowRadius
        }
        set {
            layer.shadowRadius = newValue
        }
    }

    @IBInspectable
    var shadowOpacity: Float {
        get {
            return layer.shadowOpacity
        }
        set {
            layer.shadowOpacity = newValue
        }
    }

    @IBInspectable
    var shadowOffset: CGSize {
        get {
            return layer.shadowOffset
        }
        set {
            layer.shadowOffset = newValue
        }
    }

    @IBInspectable
    var shadowColor: UIColor? {
        get {
            if let color = layer.shadowColor {
                return UIColor(cgColor: color)
            }
            return nil
        }
        set {
            if let color = newValue {
                layer.shadowColor = color.cgColor
            } else {
                layer.shadowColor = nil
            }
        }
    }
}


@IBDesignable extension UIButton {

    @IBInspectable var borderWidth: CGFloat {
        set {
            layer.borderWidth = newValue
        }
        get {
            return layer.borderWidth
        }
    }

    @IBInspectable var cornerRadius: CGFloat {
        set {
            layer.cornerRadius = newValue
        }
        get {
            return layer.cornerRadius
        }
    }

    @IBInspectable var borderColor: UIColor? {
        set {
            guard let uiColor = newValue else { return }
            layer.borderColor = uiColor.cgColor
        }
        get {
            guard let color = layer.borderColor else { return nil }
            return UIColor(cgColor: color)
        }
    }
}
1 голос
/ 05 апреля 2019

Как правило, Apple не позволяет легко изменять готовые компоненты, которые они вам предоставляют, из коробки. Так что нет радиуса границы, который будет легко изменить всего за одну строку кода. Хорошей новостью является то, что есть несколько простых решений, позволяющих получить результаты, аналогичные желаемым здесь , включая фоновое изображение и изменение радиуса границы.

Если вы можете делать что-то нестандартное и сумасшедшее, вы можете попробовать изменить эту суть, чтобы сделать наложение, которое бы «удаляло» те части панели вкладок, которые вам не интересны ( сделав их прозрачными), и оттуда вы можете изменить размеры кнопок, чтобы они соответствовали интересующим вас частям панели вкладок. Это сопряжено со своими проблемами: как сделать UIView в форме арочного моста - немного вне моего опыта.

Удачи!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...