ios - 如何为 IBInspectable Int 设置最大限制

标签 ios swift uistoryboard ibinspectable

我在 Swift 中使用 IBInspectable Int 在 4 个四种形状 (0-3) 之间进行选择,但是在 Storyboard编辑器中可以设置大于 3 且小于 0 的值,这会停止 IBDesignable 系统的工作。

是否可以设置 Storyboard 编辑器中可以设置的值的最小值和最大值?

let SHAPE_CROSS = 0
let SHAPE_SQUARE = 1
let SHAPE_CIRCLE = 2
let SHAPE_TRIANGLE = 3

@IBInspectable var shapeType: Int = 0
@IBInspectable var shapeSize: CGFloat = 100.0
@IBInspectable var shapeColor: UIColor?

最佳答案

无法限制用户可以在 Storyboard 中输入的内容。但是,您可以使用计算属性来防止存储无效值:

  @IBInspectable var shapeType: Int {
    set(newValue) {
      internalShapeType = min(newValue, 3)
    }
    get {
      return internalShapeType
    }
  }

  var internalShapeType: Int = 0

那么您还可以使用 enum 而不是常量来在内部表示不同的形状类型。

关于ios - 如何为 IBInspectable Int 设置最大限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30831609/

相关文章:

ios - Swift 2 - UICollectionViewFlowLayout 的行为未定义,因为 :

objective-c - UIStepper 值 - 多次迭代后返回的垃圾值

ios - 在 iOS 9 上呈现带有状态栏的 View Controller 时 View 向下移动

swift - 无法使用 segues 在 View Controller 之间传递数据(Xcode 7)(Swift)

ios - 使用 SwiftUI 成功登录后导航

ios - ARC 语义问题 : No visible @interface for 'UIStoryboard' declares selector

ios - 如何为 iPhone 5 切换到不同的 Storyboard?

iphone - 重置 Game Center 沙盒

objective-c - 我如何复制另一个Texture2D的一部分来创建自己的Texture2D

ios - 含糊不清地使用 'subscript' 与 NSArray & JSON