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内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • 在Swift中使用Objective-C编写类、继承Objective-C类

    互用性(互操作性)使开发者可以定义融合了 Objective-C 语言特性的Swift类.编写 Swift 类时,不仅可以继承 Objective-C 语言编写的父类,采用 Objective-C 的协议,还可以利用 Objective-C 的一些其它功能.这意味着,开发者可以基于 Objective-C 中已有的熟悉.可靠的类.方法和框架来创建 Swift 类,并结合 Swift 提供的现代化和更有效的语言特点对其进行优化. 继承Objective-C的类 在 Swift 中,开发者可以定义一

  • SwiftUI中@ViewBuilder的相关知识点解密

    前言 在SwiftUI框架中使用很多的注解,虽然使语法看上去非常简洁,但是增加了初学者的理解难度,这篇文章我们来看一下@ViewBuilder的相关知识.主要包括以下内容: resultBuilder/functionBuilder是什么以及用法 ViewBuilder结构体 @ViewBuilder修饰符的用法 使用@ViewBuilder完成一个自定义视图 @resultBuilder注解 @resultBuilder是在Swift5.4添加的,之前是叫@_functionBuilder,在

  • Swift利用纯代码实现时钟效果实例代码

    前言 在刚开始学习iOS开发时,我制作了OneClock,它除了使用最多的翻页时钟效果,还拥有最常见的时钟样式. 今天用一个很简单的方式为大家展示如何实现时钟效果. 1.分别创建时针.分针.秒针 2.随着时间改变进行对应旋转 一.创建时针.分针.秒针 分别创建三个指针的同时,我们初始化了他们的位置,也就是在12点的方向. 这里我只贴出创建的代码,在使用的过程中可以根据需要进行放置.其中hourLength.minuteLength.secondLength分别代表三个指针的长度,在实际使用中根据

  • 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

  • swift 4自定义UITableCell的方法示例

    前言 本文主要给大家介绍了关于swift 4自定义UITableCell的相关内容,分享出来供大家参考学习价值,下面话不多说了,来一起看看详细的介绍吧 直接上图 新建MenuCell 创建一个类 MenuCell 继承 UITableViewCell 添加两个要实现的方法 override init(style: UITableViewCellStyle, reuseIdentifier: String?) { super.init(style: style, reuseIdentifier:

  • Flutter 通过Clipper实现各种自定义形状的示例代码

    本文介绍了Flutter 通过Clipper实现各种自定义形状的示例代码,分享给大家,具体如下: ClipOval 圆形裁剪 ClipOval( child: SizedBox( width: 120.0, height: 120.0, child: Image.asset( Config.assets_avatar_1, ), ), ); CircleAvatar 圆形头像 CircleAvatar( radius: 60.0, backgroundImage: AssetImage( Con

  • 100 行代码实现Flutter自定义TabBar的示例代码

    Flutter 的确很强大,但美中不足的是生态还有待完善,没有出现像前端的 Antd 或 Element 那样全能的基础 UI 库. 由此带来的直接影响是开发效率提不上去,需要耗费大量的时间精力在基础组件的封装上. 官方的 TabBar 不满足需求,又没有合适的轮子,只好自己造轮子啦.接下来带你一步步实现自定义 TabBar-- 一.目标和效果 需求目标是: 这个页面不要 material 左侧统一的返回键和 Title 在右侧有取消按钮,点取消即返回 点击 Tab 可以实现 content 切

  • C/C++ QT实现自定义对话框的示例代码

    对话框分为多种,常见的有通用对话框,自定义对话框,模态对话框,非模态对话框等,其中通用对话框包括了,QFileDialog文件对话框,QColorDialog颜色对话框,QFontDialog字体对话框,QInputDialog输入对话框等,自定义对话框则主要是实现自己布局的简单页面,区别于窗体对话框则显得更加简单一些,除对话框外,多窗体设计也是最常用的,例如多窗体嵌入,MID窗体等,下面则是每种窗体的代码总结. 创建自定义窗体 1.首先使用两个控件,TableView主要是表格处理,TreeV

  • swift framework使用OC 代码两种方式示例

    目录 引言 第一种: 第二种: 1. 新建一个module.modulemap文件: 2.设置module.modulemap引用路径 3.import module 引言 swift 在工程中可以通过桥接文件使用OC代码,但是在framework中是不支持使用桥接文件的,下面是是swift framework 使用 OC 代码的两种方式. 第一种: 在target->Build Phases->Headers中,将引入的oc文件由project移动到public中,再在公共.h文件中引入即可

  • Python+Flask实现自定义分页的示例代码

    目录 前言 后端 后端思路 后端代码 前端 前端思路 前端代码 前言 分页操作在web开发中几乎是必不可少的,而我们的flask不像django自带封装好的分页操作,要分页则需要依赖flask-sqlalchemy中的分页查询,但是分页这么重要且简单的操作,自己实现必须要会这个思维,我也在网上看了一些,但大体上不合我意,因此这篇我带大家手写一个分页操作! 后端 后端思路 写这个分页操作前我们首先要思考我们需要什么?我们需要将我们需要的东西封装到一个字典里,然后传给前端!那么这里我先说分页算法,很

  • iOS Swift开发之日历插件开发示例

    本文介绍了iOS Swift开发之日历插件开发示例,分享给大家,具体如下: 效果图 0x01 如何获取目前日期 关于日期,苹果给出了 Date 类,初始化一个 Date 类 let date = Date() 打印出来就是当前系统的日期和时间 那么如何单独获得当前年份,月份呢? var date: [Int] = [] let calendar: Calendar = Calendar(identifier: .gregorian) var comps: DateComponents = Dat

  • swift cell自定义左滑手势处理方法

    swift cell自定义左滑手势处理,代码如下所示: public override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) { super.init(style: style, reuseIdentifier: reuseIdentifier) initUI() makerLayout() /// 直接调用手势方法-手势添加在了contentView上 makerPang() } private fun

  • Swift 中的 JSON 反序列化示例详解

    目录 业界常用的几种方案 手动解码方案,如 Unbox(DEPRECATED) 阿里开源的 HandyJSON 基于 Sourcery 的元编程方案 Swift build-in API Codable 属性装饰器,如 BetterCodable 各个方案优缺点对比 Codable 介绍 原理浅析 Decoder.Container 协议 自研方案 功能设计 Decoder.Container 具体实现 再议 PropertyWrapper 应用场景示例 单元测试 性能对比 业界常用的几种方案

随机推荐