zoukankan      html  css  js  c++  java
  • swift关于UIView设置frame值的extension

    swift关于UIView设置frame值的extension

    使用

    说明

    1. 使用如上图,很简单,不再赘述

    2. 在extension给添加的计算属性提供getter,setter方法即可

    源码

    //
    //  UIView+SetRect.swift
    //  YouXianMing
    //
    //  Created by YouXianMing on 15/9/29.
    //  Copyright © 2015年 YouXianMing All rights reserved.
    //
    
    import UIKit
    
    extension UIView {
    
        // x
        var x : CGFloat {
            
            get {
                
                return frame.origin.x
            }
            
            set(newVal) {
            
                var tmpFrame : CGRect = frame
                tmpFrame.origin.x     = newVal
                frame                 = tmpFrame
            }
        }
        
        // y
        var y : CGFloat {
            
            get {
                
                return frame.origin.y
            }
            
            set(newVal) {
                
                var tmpFrame : CGRect = frame
                tmpFrame.origin.y     = newVal
                frame                 = tmpFrame
            }
        }
        
        // height
        var height : CGFloat {
            
            get {
                
                return frame.size.height
            }
            
            set(newVal) {
                
                var tmpFrame : CGRect = frame
                tmpFrame.size.height  = newVal
                frame                 = tmpFrame
            }
        }
        
        // width
        var width : CGFloat {
            
            get {
                
                return frame.size.width
            }
            
            set(newVal) {
                
                var tmpFrame : CGRect = frame
                tmpFrame.size.width   = newVal
                frame                 = tmpFrame
            }
        }
        
        // left
        var left : CGFloat {
        
            get {
                
                return x
            }
            
            set(newVal) {
                
                x = newVal
            }
        }
        
        // right
        var right : CGFloat {
        
            get {
                
                return x + width
            }
            
            set(newVal) {
                
                x = newVal - width
            }
        }
        
        // top
        var top : CGFloat {
        
            get {
                
                return y
            }
            
            set(newVal) {
                
                y = newVal
            }
        }
        
        // bottom
        var bottom : CGFloat {
        
            get {
                
                return y + height
            }
            
            set(newVal) {
                
                y = newVal - height
            }
        }
        
        var centerX : CGFloat {
        
            get {
                
                return center.x
            }
            
            set(newVal) {
                
                center = CGPoint(x: newVal, y: center.y)
            }
        }
        
        var centerY : CGFloat {
        
            get {
                
                return center.y
            }
            
            set(newVal) {
                
                center = CGPoint(x: center.x, y: newVal)
            }
        }
        
        var middleX : CGFloat {
        
            get {
                
                return width / 2
            }
        }
        
        var middleY : CGFloat {
            
            get {
                
                return height / 2
            }
        }
        
        var middlePoint : CGPoint {
        
            get {
                
               return CGPoint(x: middleX, y: middleY)
            }
        }
    }
  • 相关阅读:
    .net面试--值类型和引用类型
    Centos7下安装Docker(详细的新手装逼教程)
    C# 开源框架(整理)
    service配置文件
    kafka消息队列、环境搭建与使用(.net framework)
    消息队列
    并发、并行、同步、异步、多线程的区别
    破解studio 3T
    HM后台(二)
    HM后台(一)
  • 原文地址:https://www.cnblogs.com/YouXianMing/p/4847634.html
Copyright © 2011-2022 走看看