ios - 为添加边框的 UIView 创建子类的步骤是什么?

标签 ios swift uiview subclassing

<分区>

在我当前的项目中,我经常创建一个 UIView 以在 View 上放置一个灰色矩形。我通常先在布局上放置白色 View ,然后在 viewDidLoad() 中设置所有边框。现在我决定通过编写一个自动设置 View 边框的子类来加快速度,然后将所有这些 View 设置为使用该子类。但是我不知道把这段代码放在子类的什么地方:

self.layer.borderWidth = 2;
self.layer.borderColor = UIColor.grayColor().CGColor;

我是否将它放在 override init() 上?我是否需要为 UIView 覆盖每个版本的 init?或者有更好的方法吗?

谢谢。

PS:如果还有什么方法可以让边框在 Storyboard设计时立即显示(我认为它与 drawable 有关但我完全不明白它),我将不胜感激!

编辑:

从接受的答案中,我得到了这个答案:https://stackoverflow.com/a/33721647/3003927基本上是这样的:

import UIKit

class MyView: UIView {
  override init(frame: CGRect) {
      super.init(frame: frame)
      didLoad()
  }

  required init?(coder aDecoder: NSCoder) {
    super.init(coder: aDecoder)
    didLoad()
  }

  convenience init() {
    self.init(frame: CGRectZero)
  }

  func didLoad() {
    //Place your initialization code here
    self.layer.borderWidth = 2;
    self.layer.borderColor = UIColor.grayColor().CGColor;
  }
}

最佳答案

您需要创建 UIView 的子类并根据您的需要在此类中声明 IBInspectable 属性。

尝试以下链接作为示例:

http://nshipster.com/ibinspectable-ibdesignable/

https://www.captechconsulting.com/blogs/ibdesignables-in-xcode-6-and-ios-8

关于ios - 为添加边框的 UIView 创建子类的步骤是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40082201/

相关文章:

ios - 获取当前显示的 View Controller 的线程安全方式

iphone - 删除动画完成后更新 TableView

ios - 使自定义事件指示器 View 的 UIView 半透明

ios - 在 UIWebView 加载时显示 SVProgressHUD

swift - 使用 Decodable 通过 Firestore 获取对象和文档 ID

ios - 如何使用多个 subview 保持 iOS 动画流畅

ios - 如何为 UIWebView 添加不重复的背景图片?

ios - CrashLytics 在初始化后打印一些日志消息,并通过电子邮件发送崩溃日志

swift - SpriteKit 粒子发射器多图像

ios - 如何使用 swift 在 parse.com 中检索模型