美文网首页
swift扩展类-UIView

swift扩展类-UIView

作者: 小角色被占用 | 来源:发表于2018-08-21 15:48 被阅读0次

在使用UIView的时候,经常会对视图的位置、长度、宽度进行更改,针对常用的一些类做了一些扩展。

import Foundation
import UIKit
extension UIView{
    //获取视图的X坐标
    public var x:CGFloat{
        get{
            return self.frame.origin.x;
        }
        
        set{
            var frames = self.frame;
            frames.origin.x = CGFloat(newValue);
            self.frame = frames;
        }
    }
    
    //获取视图的Y坐标
    public var y:CGFloat{
        get{
            return self.frame.origin.y;
        }
        
        set{
            var frames = self.frame;
            frames.origin.y = CGFloat(newValue);
            self.frame = frames;
        }
    }
    
    //获取视图的宽
    public var width:CGFloat{
        get{
            return self.frame.size.width;
        }
        
        set{
            var frames = self.frame;
            frames.size.width = CGFloat(newValue);
            self.frame = frames;
        }
    }
    
    //获取视图的高
    public var height:CGFloat{
        get{
            return self.frame.size.height;
        }
        
        set{
            var frames = self.frame;
            frames.size.height = CGFloat(newValue);
            self.frame = frames;
        }
    }
    
    //获取最大的X坐标
    public var maxX:CGFloat{
        get{
            return self.x + self.width;
        }
        
        set{
            var frames = self.frame;
            frames.origin.x = CGFloat(newValue - self.width);
            self.frame = frames;
        }
    }
    
    //获取最大的Y坐标
    public var maxY:CGFloat{
        get{
            return self.y + self.height;
        }
        
        set{
            var frames = self.frame;
            frames.origin.y = CGFloat(newValue - self.height);
            self.frame = frames;
        }
    }
    
    //中心点X坐标
    public var centerX:CGFloat{
        get{
            return self.center.x;
        }
        set{
            self.center = CGPoint(x:CGFloat(newValue),y:self.center.y);
        }
    }
    
    //中心点Y坐标
    public var centerY:CGFloat{
        get{
            return self.center.y;
        }
        set{
            self.center = CGPoint(x:self.center.x,y:CGFloat(newValue));
        }
    }
    
    
    /// 删除所有的子视图
    func removeAllSubView() -> Void {
        for view : UIView in self.subviews{
            view.removeFromSuperview();
        }
    }
    
    ///加载XIB文件
    public class func initWithXibName(xib:String) -> Any? {
        guard let nibs:Array = Bundle.main.loadNibNamed(xib, owner: nil, options: nil)else{
            return nil;
        }
        return nibs[0] ;
    }
    
    //设置边框
    func setBoardWithColor(color:UIColor,top:Bool,right:Bool,bottom:Bool,left:Bool,width:CGFloat) -> Void {
        if top == true {
            let layer:CALayer = CALayer();
            layer.frame = CGRect(x: 0, y: 0, width: self.width, height: width);
            layer.backgroundColor = color.cgColor;
            self.layer.addSublayer(layer);
        }
        if right == true {
            let layer:CALayer = CALayer();
            layer.frame = CGRect(x: self.width - width, y: 0, width: width, height: self.height);
            layer.backgroundColor = color.cgColor;
            self.layer.addSublayer(layer);
        }
        if bottom == true {
            let layer:CALayer = CALayer();
            layer.frame = CGRect(x: 0, y: self.height - width, width: self.width, height: width);
            layer.backgroundColor = color.cgColor;
            self.layer.addSublayer(layer);
        }
        if left == true {
            let layer:CALayer = CALayer();
            layer.frame = CGRect(x: 0, y: 0, width: width, height: self.height);
            layer.backgroundColor = color.cgColor;
            self.layer.addSublayer(layer);
        }
    }
}

相关文章

  • swift扩展类-UIView

    在使用UIView的时候,经常会对视图的位置、长度、宽度进行更改,针对常用的一些类做了一些扩展。

  • OC-->Swift

    OC [UIView alloc] initWithXXX:];Swift UIView(XXX: )类名()==...

  • iOS开发 - 扩展UIView实现视图动画

    在Swift中,可以快速对UIView进行扩展来实现视图的动画效果

  • Swift 扩展类extension重复定义方法的问题

    Swift是否支持对同一个类的同一个方法重复定义呢?比如要对UIView进行扩展,分别写了两个extension ...

  • swift 画圆形进度条

    新建一个继承自uiview的类FCCycleView是我的类名 oc的UIview swift不写init方法会报...

  • 单选以及多选的实现 iOS

    话不多说,首先看效果图 1、定义UIView的扩展类 UIView+DBExtension.h import

  • swift UIView的扩展(extension)

    在日常代码中,我们常常要重复用到view的一些属性,比如view.center.x、view.frame.orig...

  • Swift之UIView的扩展

    这样写代码阅读性更好,本人也喜欢这样写代码 OC版本https://www.jianshu.com/p/87fe8...

  • swift的一些特性

    关于swift 的一些特性收集了一些资料和链接一、Swift语言的类扩展是一个强大的工具,我们可以通过类扩展完成如...

  • swift扩展

    扩展 Swift中的扩展,有点类似于OC中的分类(Category) 扩展作用 扩展可以为枚举、结构体、类、协议添...

网友评论

      本文标题:swift扩展类-UIView

      本文链接:https://www.haomeiwen.com/subject/zhrjiftx.html