【问题标题】:How to use UIView in UIViewController ios如何在 UIViewController ios 中使用 UIView
【发布时间】:2017-08-03 04:35:41
【问题描述】:

我像这样制作 UIView。但我想在 UIViewController 中使用它 我该怎么办?

导入 UIKit

class CardView: UIView {

    @IBInspectable var cornerRadius: CGFloat = 2

    @IBInspectable var shadowOffsetWidth: Int = 0
    @IBInspectable var shadowOffsetHeight: Int = 3
    @IBInspectable var shadowColor: UIColor? = UIColor.black
    @IBInspectable var shadowOpacity: Float = 0.5

    override func layoutSubviews() {
        layer.cornerRadius = cornerRadius
        let shadowPath = UIBezierPath(roundedRect: bounds, cornerRadius: cornerRadius)

        layer.masksToBounds = false
        layer.shadowColor = shadowColor?.cgColor
        layer.shadowOffset = CGSize(width: shadowOffsetWidth, height: shadowOffsetHeight);
        layer.shadowOpacity = shadowOpacity
        layer.shadowPath = shadowPath.cgPath
    }

}

【问题讨论】:

    标签: ios iphone uiview uiviewcontroller cardview


    【解决方案1】:

    如果你想在你的 viewController 中添加它,你有几个选择:

    1. 直接在情节提要中添加(最佳选择):

    通过 xCode 右下角的检查器/对象库在 viewController 中拖动视图

    UIView object screenshot

    添加约束,然后点击视图中的

    Constraints screenshot

    并在身份检查器/自定义类字段中选择您的自定义类

    1. 您还可以使用从 xib 加载的视图 谷歌从 xib 加载的不同方式。

    2. 您可以在代码中添加它。有点难:

    创建一个惰性属性:

    lazy var cardView: CardView = {
            let cardView = CardView(frame: CGRect(x: 0, y: 0, width: 100, height: 200))
            cardView.backgroundColor = .gray
            cardView.layer.cornerRadius = 16.0
            return cardView
        }()
    

    例如在 viewDidLoad 中添加自定义视图:

    override func viewDidLoad() {
        super.viewDidLoad()
    
        /* Adding subview to the VC */
        view.addSubview(cardView)
    }
    

    然后添加约束。您可以将其垂直/水平居中,然后设置自定义高度/宽度。这取决于你想要什么......

    检查一下: Swift | Adding constraints programmatically

    我建议您阅读 Apple 的文档,而不仅仅是复制粘贴代码。 如果您还没有阅读,那么绝对应该阅读“documentation/UserExperience/Conceptual/AutolayoutPG/ProgrammaticallyCreatingConstraints.html”。

    【讨论】:

    • 谢谢兄弟。你的回答很有帮助。
    【解决方案2】:

    将新的 uiview 添加到您的故事板或 xib 文件中,并将其类设置为 CardView,如图所示

    【讨论】:

    • 我确实喜欢你。但我不知道我应该在 textview 中使用什么 cardview
    猜你喜欢
    • 2023-04-05
    • 1970-01-01
    • 2018-04-14
    • 2011-01-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-28
    • 1970-01-01
    相关资源
    最近更新 更多