Ios 如何使用Swift将具有角半径和阴影的UIView.xib加载到主viewcontroller中

Ios 如何使用Swift将具有角半径和阴影的UIView.xib加载到主viewcontroller中,ios,swift,Ios,Swift,在我的例子中,我试图创建自定义的ui视图,其中包含一些属性,如角半径,阴影,以及按钮操作标题标签。这是我在一个普通班上维护的。我需要从多个不同的viewcontroller调用。我可以从viewcontroller调用它,但不知道如何将阴影、角半径保持在customview类中。如何实现这一点,就像弹出窗口和从多个视图控制器调用一样 我的CustomView类 import UIKit class ToastView: UIView { } 我的CustomView.Xib Vi

在我的例子中,我试图创建自定义的
ui视图
,其中包含一些属性,如
角半径
阴影
,以及
按钮操作
标题标签
。这是我在一个普通班上维护的。我需要从多个不同的
viewcontroller
调用。我可以从viewcontroller调用它,但不知道如何将阴影、角半径保持在
customview
类中。如何实现这一点,就像弹出窗口和从多个视图控制器调用一样

我的CustomView类

import UIKit

class ToastView: UIView {    

}
我的CustomView.Xib

ViewController调用CustomView

import UIKit

class ViewController: UIViewController {
    override func viewDidLoad() {
        super.viewDidLoad()
        let customView = Bundle.main.loadNibNamed("ToastView", owner: self, options: nil)?.first as! ToastView
        view.addSubview(customView)
        customView.frame = CGRect(x:0, y: 100, width: view.frame.width-50, height: 55.0)
        customView.center = view.center
        customView.layer.borderColor =  colorLiteral(red: 0.6000000238, green: 0.6000000238, blue: 0.6000000238, alpha: 1)
        customView.layer.borderWidth = 1.5
        customView.clipsToBounds = true
    }

阴影
拐角半径
逻辑等图层属性放入
视图
的类本身:

override func awakeFromNib() {
    super.awakeFromNib()
    layer.borderColor =  colorLiteral(red: 0.6000000238, green: 0.6000000238, blue: 0.6000000238, alpha: 1)
    layer.borderWidth = 1.5
    layer.shadowOpacity = 1
}
所以现在它总是有这些


请注意,
clipsToBounds
kills
shadow
您可以使用此
扩展添加阴影

import UIKit

class AnyViewController: UIViewController {
    //Your necessary methods & properties
    //call your xib here
}

extension UIView {

    func addShadow(offset: CGSize, color: UIColor, radius: CGFloat, opacity: Float)
    {
        layer.masksToBounds = false
        layer.shadowOffset = offset
        layer.shadowColor = color.cgColor
        layer.shadowRadius = radius
        layer.shadowOpacity = opacity

        let backgroundCGColor = backgroundColor?.cgColor
        backgroundColor = nil
        layer.backgroundColor =  backgroundCGColor
    }
}
你可以这样称呼它

your_Custom_View.layer.cornerRadius = 20 //to add corner radius
your_Custom_View.addShadow(offset: CGSize(width: 0, height: 1), color: UIColor.black, radius: 2.0, opacity: 1.0) //to add shadow

谢谢:)我可以知道如何在视图类中设置框架吗?因为每次从主视图控制器调用视图时,不需要复制帧大小,您可以使用
didMoveToSuperview()
抱歉,我听不懂。我将在UIView中维护一个标签和按钮。如何调用此视图,以及在此之前如何将框架大小设置为此自定义类?这是一种为iOS弹出的祝酒词,如何在一行中更改这两行?我需要在导航栏下方显示此视图
customView.frame=CGRect(x:0,y:100,width:view.frame.width-50,height:55.0)customView.center=view.center
我正在使用.xib如何设置?我想你必须编辑你的答案。我需要在customViewclass或主viewcontroller中放置扩展的位置?您可以在任何viewcontroller中添加扩展您必须在类@myappstoreI使用的.xib之外编写扩展。这怎么简单?