仍然想知道IBDesignable和IBInspectable是做什么的?

现在是2019年,XCode 10在这里,iOS 12在这里,但我们甚至没有提供通过XCode接口构建器为UIView / UIbutton或任何其他UIView子类提供圆角/边框半径/边框宽度的规定。 啊! 有点令人沮丧,对不对?

当然,我们可以通过编程来完成所有这些工作。 但是,请思考一下,为什么您可以编写一些原始代码并想象一下它的外观,当您可以轻松地在Interface Builder中修改值并使用IBDesignable和IBInspectable查看实时更改时!

在本文中,我将说明如何使用界面生成器添加边框颜色,边框宽度和角半径。 因此,让我们开始吧。

IBDesignable和IBInspectable

将@IBInspectable添加到属性时,它将在XCode中将该属性公开给属性检查器。 您可以在属性检查器中修改值,而不用编程方式进行修改。 但是,当您尝试更改值时,界面构建器将不会实时显示更改。 为了查看更改,您需要构建并运行项目。

但是,嘿! 这是聚会的把戏。 我们可以使用@IBDesignable来处理此问题,它会告诉XCode在您修改值时呈现实时更改。

现在,让我们看看下面的示例类。

 导入UIKit 
  @IBDesignable 
类CustomView:UIView {
  @IBInspectable 
var borderColor:UIColor? {
得到{
返回UIColor(cgColor:layer.borderColor!)
}
设置{
layer.borderColor = newValue?.cgColor
}
}
  @IBInspectable 
var borderWidth:CGFloat {
得到{
返回layer.borderWidth
}
设置{
layer.borderWidth = newValue
}
}
  @IBInspectable 
var cornerRadius:CGFloat {
得到{
返回layer.cornerRadius
}
设置{
layer.cornerRadius = newValue
}
}
}

当选择UIView并应用类CustomView时,新属性将显示在“界面”构建器中。

在这里,您可以直接在界面构建器中修改属性,并查看正在发生的更改。

您还可以添加所需的任何其他属性,并在不同的视图中使用此类。

谢谢阅读!