为特征改变用户定义的运行时属性

时间:2017-02-23 20:00:44

标签: ios iphone swift xcode uiview

我使用带有圆角的int rows = 10, cols = 10; std::vector<std::string> strs( rows, std::string( cols, ' ' ) ); for (int x = 0; x<rows; x++) for (int y = 0; y<cols; y++) if (x == 0 || x == 9 || y == 0 || y == 9) strs[y][x] = '*'; // only issue you have to address row/column not column/row std::string text = "foo"; strs[rows/2].replace( ( cols - text.length() ) / 2, text.length(), text ); for( const auto &str : strs ) std::cout << str << std::endl; 创建了一个视图。不过,我想将其移除Storyboard。我使用用户定义的运行时属性来完成这项工作,我想知道我是否可以为iPhone制作变体。

enter image description here

编辑:我知道我可以在代码中执行此操作,但这听起来很愚蠢,因为它具有视觉效果,而故事板文件听起来像是进行此类变体的正确位置。

1 个答案:

答案 0 :(得分:0)

extension CALayer {
    var borderUIColor: UIColor {
        set {
            if UIDevice.current.model == "iPhone" {
                self.borderColor = newValue.cgColor
            }
            // do whatever you want
        }
        get {
            return UIColor(cgColor: self.borderColor!)
        }
    }
}

然后使用layer.borderUIColor访问该属性。

编写扩展并重新定义属性,在set方法中判断设备类型会解决这个问题!希望这能解决你的问题!