温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Swift如何自定义UIView

发布时间:2021-10-28 13:29:26 来源:亿速云 阅读:221 作者:小新 栏目:开发技术

小编给大家分享一下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”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!

    向AI问一下细节

    免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

    AI