Swift代码自定义UIView实现示例

 更新时间:2021年10月28日 11:42:55   作者:Foreveroriginal  
这篇文章主要为大家介绍了Swift如何自定义UIView的实现示例代码,有需要的朋友可以借鉴参考下,希望能够有所帮助祝大家多多进步,早日升职加薪

Swift自定义View和OC自定义View的原理都是一样的,重写init()方法或initWithFrame()方法,下面简单说说如何自定义swift UIView

主要是重写init(frame:CGRect)方法,其中required init?(coder aDecoder: NSCoder) 是必不可少的,swift语言强制要求的

//
//  LoginImgFieldView.swift
//  SmartMilk
//
//  Created by mac on 2017/6/9.
//  Copyright © 2017年 mac. All rights reserved.
//
import UIKit 
let G_HEADIMAGE_HEIGHT:CGFloat = 30 
class LoginImgFieldView: UIView {
    var headImgView:UIImageView?
    var field:UITextField?
    var line:UILabel?            
    /*
    // Only override draw() if you perform custom drawing.
    // An empty implementation adversely affects performance during animation.
    override func draw(_ rect: CGRect) {
        // Drawing code
    }
    */
//    override init(){
//        super.init()
//        setupSubViews()
//    }    
    override init(frame:CGRect){
        super.init(frame: frame)
        setupSubViews()
    }    
    required init?(coder aDecoder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }    
    func setupSubViews() {        
        let frame = self.bounds
        //uiimageVIew
        headImgView = UIImageView(frame:CGRect(x:0,y:0,width:G_HEADIMAGE_HEIGHT,height:G_HEADIMAGE_HEIGHT))
        headImgView?.backgroundColor = UIColor.blue
        
        //uiTextField
        field = UITextField(frame:CGRect(x:0,y:0,width:100,height:G_HEADIMAGE_HEIGHT))
//        field?.font = UIFont.systemFont(ofSize: 15)        
        //uiLabel        
        line = UILabel(frame: CGRect(x:0,y:frame.size.height-1,width:frame.size.width,height:1))
        line?.backgroundColor = UIColor.orange        
        self.addSubview(headImgView!)
        self.addSubview(field!)
        self.addSubview(line!)
    }       
    override func layoutSubviews() {
        super.layoutSubviews()        
        let frame = self.bounds
        let imgY = (frame.size.height - G_HEADIMAGE_HEIGHT)/2
        headImgView?.frame = CGRect(x:0,y:imgY,width:G_HEADIMAGE_HEIGHT,height:G_HEADIMAGE_HEIGHT)        
        //field
        let fieldx = G_HEADIMAGE_HEIGHT+5
        let fieldWidth = frame.size.width - fieldx        
        field?.frame = CGRect(x: fieldx, y: imgY, width: fieldWidth, height: G_HEADIMAGE_HEIGHT)        
        //label
        var lineFrame = line?.frame
        lineFrame?.origin.y = frame.size.height - 2
        lineFrame?.size.width = frame.size.width        
        line?.frame = lineFrame!
        
    }
 
}

到此这篇关于Swift代码自定义UIView实现示例的文章就介绍到这了,更多相关Swift自定义UIView内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Swift能代替Objective-C吗?

    Swift能代替Objective-C吗?

    这是我在网上上看到的答案,复制粘贴过来和大家分享一下,因为我和很多人一样很关心Swift的出现对Mac开发的影响和对Objective-C的影响。
    2014-09-09
  • Swift教程之集合类型详解

    Swift教程之集合类型详解

    这篇文章主要介绍了Swift教程之集合类型详解,Swift 提供两种集合类型来存储集合,数组和字典,本文详细讲解了数组的创建、读取和修改数组、遍历数组以及集合的操作等内容,需要的朋友可以参考下
    2015-01-01
  • Swift使用transform 实现重复平移动画效果

    Swift使用transform 实现重复平移动画效果

    这篇文章主要介绍了Swift使用transform 实现重复平移动画效果,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-07-07
  • Swift的开发环境搭建以及基本语法详解

    Swift的开发环境搭建以及基本语法详解

    这篇文章主要介绍了Swift的开发环境搭建以及基本语法详解,是Swift入门学习中的基础知识,需要的朋友可以参考下
    2015-11-11
  • Swift语言实现地图坐标弹跳动画

    Swift语言实现地图坐标弹跳动画

    这篇文章主要介绍了用Swift语言实现地图坐标弹跳动画的方法主要应用iOS7来实现此功能,需要的朋友可以参考下
    2015-07-07
  • Swift实现表格视图单元格单选(2)

    Swift实现表格视图单元格单选(2)

    这篇文章主要为大家详细介绍了Swift实现表格视图单元格单选的第二篇,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-01-01
  • Swift中初始化init的方法小结

    Swift中初始化init的方法小结

    Swift有着超级严格的初始化方法,不仅强化了designated初始化方法的地位,所有不加修饰的init方法都需要在方法中确保非Optional的实例变量被赋值初始化,下面这篇文章主要给大家介绍了关于Swift中初始化init的相关资料,需要的朋友可以参考下。
    2018-04-04
  • Ubuntu 16.04上安装 Swift 3.0及问题解答

    Ubuntu 16.04上安装 Swift 3.0及问题解答

    本文给大家分享的是在Ubuntu系统中安装 Swift 3.0的方法和步骤,以及安装过程中有可能遇到的问题的解答,这里推荐给小伙伴们,希望大家能够喜欢
    2016-07-07
  • Swift语言中的函数学习教程

    Swift语言中的函数学习教程

    这篇文章主要介绍了Swift语言中的函数学习教程,着重讲了Swift函数的参数传递用法,需要的朋友可以参考下
    2015-11-11
  • 详解Swift 中的幻象类型

    详解Swift 中的幻象类型

    让我们来看看一种技术,它可以让我们利用 Swift 的类型系统在编译时执行更多种类的数据验证消除更多潜在的歧义来源,并帮助我们在整个代码库中保持类型安全,通过使用幻象类型(phantom types),对Swift 幻象类型相关知识感兴趣的朋友一起看看吧
    2022-05-05

最新评论