Swift 自定义init方法

在开发中,自定义init初始化构造函数实现参数传递比较常见

1,在Swift, 类的初始化器有两种, 分别是DesignatedInitializer(指定初始化器)和ConvenienceInitializer(便利初始化器)

2,如果子类没有定义任何的指定初始化器,那么会默认继承所有来自父类的指定初始化器。

3,如果子类提供了所有父类指定初始化器的实现,那么自动继承父类的便利初始化器

4,如果子类只实现部分父类初始化器,那么父类其他的指定初始化器和便利初始化器都不会继承。

 

5,子类的指定初始化器必须要调用父类合适的指定初始化器。


错误分析: 指定构造器必须调用它最近父类的指定构造器。

importUIKit


classWebViewController:UIViewController{


   varimageUrl:String!

   

   init(imageUrl:String){

       

      super.init(nibName:nil,bundle: nil)

       

      self.imageUrl=imageUrl

   }

   

   requiredinit?(coderaDecoder: NSCoder){

      fatalError("init(coder:)has not been implemented")

   }

   

   overridefuncviewDidLoad(){

      super.viewDidLoad()


      self.view.backgroundColor=UIColor.whiteColor()


   }

}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
自定义 UIActivityIndicatorView,您需要遵循以下步骤: 1. 创建一个新的 UIView,并将其大小设置为您想要的指示器的大小。 2. 在 UIView 中添加一个 CAShapeLayer,并设置其填充颜色和线宽。 3. 使用 CABasicAnimation 创建旋转动画,并将其添加到 CAShapeLayer 上。 4. 将 UIView 添加到您的视图层次结构中,并在需要时启动动画。 下面是一些示例代码,演示如何创建一个自定义的 UIActivityIndicatorView: ```swift class CustomActivityIndicatorView: UIView { private let shapeLayer = CAShapeLayer() override init(frame: CGRect) { super.init(frame: frame) configure() } required init?(coder: NSCoder) { super.init(coder: coder) configure() } private func configure() { shapeLayer.fillColor = UIColor.white.cgColor shapeLayer.strokeColor = UIColor.gray.cgColor shapeLayer.lineWidth = 3.0 shapeLayer.lineCap = .round shapeLayer.path = UIBezierPath(arcCenter: CGPoint(x: bounds.midX, y: bounds.midY), radius: bounds.width / 2 - shapeLayer.lineWidth / 2, startAngle: 0, endAngle: .pi * 2, clockwise: true).cgPath layer.addSublayer(shapeLayer) } func startAnimating() { let animation = CABasicAnimation(keyPath: "transform.rotation.z") animation.fromValue = 0 animation.toValue = CGFloat.pi * 2 animation.duration = 1 animation.repeatCount = .infinity shapeLayer.add(animation, forKey: "rotation") } func stopAnimating() { shapeLayer.removeAnimation(forKey: "rotation") } } ``` 在您的视图控制器中,可以像这样使用它: ```swift let activityIndicator = CustomActivityIndicatorView(frame: CGRect(x: 0, y: 0, width: 50, height: 50)) activityIndicator.center = view.center view.addSubview(activityIndicator) activityIndicator.startAnimating() // 在一段时间后停止动画 DispatchQueue.main.asyncAfter(deadline: .now() + 5.0) { activityIndicator.stopAnimating() } ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值