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
killsshadow
您可以使用此扩展添加阴影
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之外编写扩展。这怎么简单?