zoukankan      html  css  js  c++  java
  • swift为UIView添加extension扩展frame

    添加swift file:UIView+Extension

    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)
            }
        }
    }

    简单设置x/y/width/height

    import UIKit
    
    extension UIView {
        
        //设置随机背景色
        func backgroundColorRandom(){
            
            self.backgroundColor = UIColor(red: CGFloat(CGFloat(random())/CGFloat(RAND_MAX)), green: CGFloat(CGFloat(random())/CGFloat(RAND_MAX)), blue: CGFloat(CGFloat(random())/CGFloat(RAND_MAX)), alpha: 1)
        }
        
        var x : CGFloat!{
            get{return self.frame.origin.x
                
            }
            set(newX){
                var rect : CGRect! = self.frame
                rect.origin.x = newX
                self.frame = rect
            }
            
        }
        
        var y : CGFloat!{
            get{
                return self.frame.origin.y
            }
            set(newY){
                var rect : CGRect! = self.frame
                rect.origin.y = newY
                self.frame = rect
            }
            
        }
        
        var width : CGFloat!{
            get{
                return self.frame.size.width
            }
            set(newW){
                var rect : CGRect! = self.frame
                rect.size.width = newW
                self.frame = rect
            }
            
        }
        
        var height : CGFloat!{
            get{
                return self.frame.size.height
            }
            set(newH){
                var rect : CGRect! = self.frame
                rect.size.height = newH
                self.frame = rect
            }
            
        }
        
    }

    相关链接:swift关于UIView设置frame值的extension

  • 相关阅读:
    Cookie-Session
    Chrome浏览器的Timing分析
    K-means: 多次random initialization来避免bad局部最优
    K-means: optimization objective(最小化cost function来求相应的参数)
    unsupervised learning: K-means 算法
    unsupervised learning: clustering介绍
    SVM: 实际中使用SVM的一些问题
    SVM: 使用kernels(核函数)的整个SVM算法过程
    SVM: 用kernels(核函数)来定义新的features,避免使用多项式,高斯kernel
    SVM:从数学上分析为什么优化cost function会产生大距离(margin)分类器
  • 原文地址:https://www.cnblogs.com/On1Key/p/5419530.html
Copyright © 2011-2022 走看看