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)
        }
    }
}
时间: 2024-12-30 02:27:14

swift关于UIView设置frame值的extension的相关文章

如何获取UITableView中cell的frame值

如何获取UITableView中cell的frame值 这个可以用来处理UITableView弹出键盘的问题 本人视频教程系类   iOS中CALayer的使用 效果: 源码: // // ViewController.m // TableViewCellFrame // // Created by YouXianMing on 14/12/24. // Copyright (c) 2014年 YouXianMing. All rights reserved. // #import "ViewC

[Android]为Spinner填充数据后设置默认值的问题

前言 为Spinner适配完数据后需要设置其默认选项,但是发现直接setSelection(int position)有时候不管用,打开选项又发现已经选中了,但是显示出来的选项又始终默认第一个,本文为文章1的中文简单译本.   文章 1. Using spinner.setSelection & finding the spinner doesn't show the selected item when closed?   声明 欢迎转载,但请保留文章原始出处:)  博客园:http://ww

MySQL表字段设置默认值

环境 MySQL 5.1 + 命令行工具 问题 MySQL表字段设置默认值 解决 --SQL: CREATE TABLE test( i_a int NOT NULL DEFAULT 1, ts_b timestamp NOT NULL DEFAULT NOW(), c_c char(2) NOT NULL DEFAULT '1' ); --以下SQL不合法 --time_d time NOT NULL DEFAULT CURTIME(), --date_e date NOT NULL DEFA

赋值-c# 后台给select下拉框设置默认值

问题描述 c# 后台给select下拉框设置默认值 点击编辑时 要给下拉框赋值,在后台拿到对应的值后怎么给下拉框赋值.控件.属性=值: 请问是哪个属性.谢谢 解决方案 select是客户端的?还是服务器端的asp:DropDownList 客户端的直接 document.getElementById('selid').value='<%=cs后台文件中一个protected全局变量%>' 服务器的用ddl.SelectedValue=xxxx 解决方案二: 到底要默认值还是要赋值啊. 你说的是

基于MFC的文档视图应用程序调用组合框设置默认值

问题描述 基于MFC的文档视图应用程序调用组合框设置默认值 基于MFC的文档视图应用程序调用组合框,如何设置默认值,m_szReportLH类型是控件类型,m_szReportLH.SetCurSel(0)这个函数用过了,不好使,在构造函数中试过,出现崩溃,后来我放到OnInitialUpdate()函数中,出不来结果,不知道咋办?求助 更多 0 解决方案 ((CComboBox*)GetDlgItem(控件id))->SetCurSel(n); 是这样写的么?此时组合框内已经有内容了么 贴出代

随机数字-access 中 字段“点击量”,设置默认值:int(100*rnd())+100 点击量不变化?

问题描述 access 中 字段"点击量",设置默认值:int(100*rnd())+100 点击量不变化? access 中 字段"点击量",设置默认值:int(100*rnd())+100 为什么发布新闻之后,点击量不变化?想要效果,点击量是一个100到200之间的随机数字,但,第一篇随机的,后面再发就和第一篇的点击量相同了. 解决方案 先调用Randomize否则每次产生的是一样的 解决方案二: 先调用Randomize否则每次产生的是一样的

Swift语言指南(六)--可选值

原文:Swift语言指南(六)--可选值 在值可能不存在的情况下使用可选值(optional), 可选值是: · 存在一个值,这个值等于 x 或 · 不存在任何值  注: 在 C 和 Objective-C 中可选值的概念并不存在.Objective-C 中(与可选值)最相近的(概念)是,一个以对象为返回值的方法,也可以返回 nil,nil表示"不存在有效的对象".不过,这规则只对对象有效--对于结构.基本的 C 类型或枚举值无效.对于这些类型,Objective-C 语言的方法通常会

powerdesigner15 如何设置默认值为空(不是null)

问题描述 powerdesigner15 如何设置默认值为空(不是null) powerdesigner15 如何设置默认值为空(不是null),空字符串 各位哥哥姐姐帮帮忙啊

mysql里面没设置默认值字段也不允许为空,插入语句中也没指定值却能插入成功!是什么情况??

问题描述 mysql里面没设置默认值字段也不允许为空,插入语句中也没指定值却能插入成功!是什么情况?? 如题,我的表结构是这样的 SQL语句:INSERT INTO test (name) VALUES ('lsq2') 求大神帮忙!! 解决方案 后面的图片上错了, 解决方案二: 楼主你替数据库想想,又不能为null,又得是int类型,还能怎么办,数据库只能补个0. 解决方案三: 我以为是会报错,这是我本地测试的 没有报错我在正式服务器上试了报错了,说字段没有默认值.