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{
            NSLog("get")
            return self.frame.origin.x

        }
        set(newX){
            var rect : CGRect! = self.frame
            rect.origin.x = newX
            self.frame = rect
            NSLog("set")
        }

    }

    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

时间: 2024-12-25 10:18:58

swift为UIView添加extension扩展frame的相关文章

Swift中给UIView添加Badge

extension UIView{ //任意UIView添加badge func showBadgeValue(#strBadgeValue: String) -> Void{ let tabBar = UITabBar(frame: CGRectMake(0, 0, 320, 50)) let item = UITabBarItem(title: "", image: nil, tag: 0) item.badgeValue = strBadgeValue let array

【Swift 2.1】为 UIView 添加点击事件和点击效果

前言 UIView 不像 UIButton 加了点击事件就会有点击效果,体验要差不少,这里分别通过自定义和扩展来实现类似 UIButton 的效果. 声明 欢迎转载,但请保留文章原始出处:) 博客园:http://www.cnblogs.com 农民伯伯: http://over140.cnblogs.com 正文 一.为 UIView 添加点击事件 extension UIView { func addOnClickListener(target: AnyObject, action: Sel

Swift中文教程(七)--协议,扩展和泛型

Protocols and Extensions 协议(接口)和扩展 Swift使用关键字protocol声明一个协议(接口): 类(classes),枚举(enumerations)和结构(structs)都可采用协议(protocol): 1 class SimpleClass: ExampleProtocol { 2 var simpleDescription: String = "A very simple class." 3 var anotherProperty: Int

Linux下php编译完成添加mysql扩展

在使用中出现了这个问题,查看了一下phpinfo发现没有mysql扩展. 步骤如下: 1 进入php的安装包目录 cd php-5.6.22/ext/mysql /usr/local/bin/phpize ./configure --with-php-config=/usr/local/bin/php-config --with-mysql=/usr/local/mysql/ make make install 在mysql/modules下看到了mysql.so 2 修改php.ini 添加e

通过phpize添加PHP扩展openssl、mysql

phpize phpize 命令是用来准备 PHP 扩展库的编译环境的.下面例子中,扩展库的源程序位于 extname 目录中: 1 2 3 4 5 $ cd extname $ phpize $ ./configure $ make # make install 成功的安装将创建 extname.so 并放置于 PHP 的扩展库目录中.需要调整 php.ini,加入 extension=extname.so 这一行之后才能使用此扩展库. 如果系统中没有 phpize 命令并且使用了预编译的包(

Windows下 "redis安装"和"PHP中添加redis扩展"

一. 安装redis及启用服务1. 下载redis包 链接:http://pan.baidu.com/s/1sjKfZOD 密码:oy5c 2 .解压以后,可以看到以下文件 3.双击运行服务端redis-server.exe,开启服务,如图: 4.双击运行客户端redis-cli.exe,可见服务端有连接提示: 5.然后,就可以使用了: =======================================PHP中添加redis扩展============================

#iOS开发常用方法集锦#如何为UIView添加居中背景

?本文永久地址为?http://www.cnblogs.com/ChenYilong/p/4103050.html,转载请注明出处. Evernote印象笔记:https://app.yinxiang.com/shard/s22/sh/2fe4cb0f-26cb-47ce-8569-bb45451cb7b8/6118d5a054003de9 //如何为UIView添加居中背景 #define kBackgroundImageCenterForView(ViewName,imageName)\ U

在Linux环境下给php添加mbstring扩展

1,今天在开发项目的时候使用了一个php函数(mb_strcut),运行代码时候提示报错"call to undefind function mb_strcut",首先检查下函数名没有写错,难道是php.ini中没有开启扩展,后来去phpinfo看了确实没有加载mb_strcut,后台得知这个扩展在官方由mbstring构建 2,去php官方pecl首页搜索竟然搜索不到,MDZZ,what the hell,由于php安装包中带有所有的扩展,所以楼主用wget下载一个php5.6.24

linux和windows下添加php扩展方法

本次编译只是单独编译php的扩展库,然后将编译好的php扩展库加到现在运行的php中,不对现在运行的php重新编译,所以对现在运行的php没有任何影响. 假如原先编译的php目录在/usr/local/php目录下;apache在/usr/local/apache2目录下:php源代码在/usr/local/src/php-5.2.14目录下.如果实际目录与假定的目录不一致,则在下面的命令中做调整. 1. 找到当前运行的php版本的源代码目录,如 php-5.2.14.进入curl扩展库目录.$