swift UIView 扩展

import Foundation
import UIKit

///
/// @brief UIView的扩展方法,方便工程全局使用扩展方法来创建或者使用所有继承于UIView的控件
///
extension UIView {
    ///
    /// 获取或设置origin.x
    ///
    func originX() ->CGFloat {
        return self.frame.origin.x
    }

    func originX(let originX: CGFloat) {
        var rect = self.frame
        rect.origin.x = originX
        self.frame = rect
    }

    ///
    /// 获取或设置origin.y
    ///
    func originY() ->CGFloat {
        return self.frame.origin.y
    }

    func originY(let originY: CGFloat) {
        var rect = self.frame
        rect.origin.y = originY
        self.frame = rect
    }

    ///
    /// 获取或设置origin
    ///
    func origin() ->CGPoint {
        return self.frame.origin
    }

    func origin(let origin: CGPoint) {
        var rect = self.frame
        rect.origin = origin
        self.frame = rect
    }

    ///
    /// 获取或设置width
    ///
    func width() ->CGFloat {
        return self.frame.size.width
    }

    func width(let width: CGFloat) {
        var rect = self.frame
        rect.size.width = width
        self.frame = rect
    }

    ///
    /// 获取或设置height
    ///
    func height() ->CGFloat {
        return self.frame.size.height
    }

    func height(let height: CGFloat) {
        var rect = self.frame
        rect.size.height = height
        self.frame = rect
    }

    ///
    /// 获取rightX
    ///
    func rightX() ->CGFloat {
        return originX() + width()
    }

    ///
    /// 获取或设置bottomY
    ///
    func bottomY() ->CGFloat {
        return originY() + height()
    }

    func bottomY(let bottomY: CGFloat) {
        var rect = self.frame
        rect.origin.y = bottomY - height()
        self.frame = rect
    }
}
时间: 2024-11-05 13:31:18

swift UIView 扩展的相关文章

Swift UIview简答动画

Swift UIView本事自带了一些简单的动画. 如果不是很复杂的需求,可以考虑使用此处的方法. 下面我们简单尝试一下 首先创建三个View 分别设置三中背景色 let view1=UIView(frame: CGRectMake(10, 50, 200, 200)) let view2=UIView(frame: CGRectMake(60, 100, 200, 200)) let view3=UIView(frame: CGRectMake(110, 150, 200, 200)) vie

Swift学习:扩展(Extensions)

扩展就是为一个已有的类.结构体.枚举类型或者协议类型添加新功能.这包括在没有权限获取原始源代码的情况下扩展类型的能力(即 逆向建模).扩展和 Objective-C 的分类类似.(与 Objective-C 不同的是,Swift 的扩展没有名字.) swift 中的扩展可以: 添加计算型属性和计算型类型属性 定义实例方法和类型方法 提供新的构造器 定义下标 定义和使用新的嵌套类型 使一个已有类型符合某个协议 在 swift 中,你甚至可以对协议进行扩展,提供协议要求的实现,或者添加额外的功能,从

iOS开发-UIView扩展CGRect

关于UIView的位置都会遇到,一般需要改变UIView的位置,需要先获取原有的frame位置,然后在frame上面修改,有的时候如果只是改变了一下垂直方向的位置,宽度和高度的一种,这种写法很麻烦.下面两种写法第二种明显更简单,如果需要实现第二种方法就需要扩展UIView. //1 CGRect frame=self.testView.frame; frame.size.width=120; self.testView.frame=frame; [self printFrame]; //2 se

[扩展]为UIView扩展x,y,width,height,centerX,centerY,Size,Origin等属性

大家应该知道如何设置一个view组件的位置把,是的,如下: view.frame=CGRectMake(x,y,width,height);//设置组件的x,y坐标,设置组件的宽度高度... 如果我单独要设置坐标或者宽度高度,得这样: view.frame.size.width=100; view.frame.size.height=100; 如果你想偷个懒,比如: view.frame.size=(CGSize){200,200};//这个语句会报错,因为无法对size赋值 通过上面的代码,大

6.Swift协议|扩展|访问权限|异常调试|类型转换|运算函数|ARC|类类型初试化器|值类型初始化器

1. 协议(Protocol):与OC之间唯一不同的是Swift中的协议不管是属性还时方法全部是必须实现的 /** protocol*/ protocol FullNamed { /** 计算属性申明,只读的计算属性*/ var fullName:String { get } } /** 实现协议*/ struct Person:FullNamed { /** 实现协议  可以把计算属性实现为存储属性,更改其本身的性质*/ var fullName: String = "abc" }

【iOS】Swift中扩展extension与协议protocol

一起连带前面几篇Playground小结代码都转到github上了,注释写了很多,主要方便自己以后可以翻翻看.Swift语法主要部分差不多就这些了.当然还有泛型.运算符重载.ARC.闭包之类的补充. 一.扩展(extension) 扩展 extension(类似OC中的分类,但Swift中没有名字), 即使在没有权限获取到原始代码的情况下,为类增加新功能. 注意: 只要定义了扩展, 那么该扩展对该类的实例都是可用的. extension SomeType{ //添加到SomeType的新功能写在

Swift UIView 层次调整

Swift 中添加的UIView都是有层级的. 我们先添加三个看一看 let view1=UIView(frame: CGRectMake(10, 50, 200, 200)) let view2=UIView(frame: CGRectMake(60, 100, 200, 200)) let view3=UIView(frame: CGRectMake(110, 150, 200, 200)) view1.backgroundColor=UIColor.redColor() view2.bac

Swift UIView 常用添加方法

Swift 添加UIView有几种常见方法 func insertSubview(view: UIView, atIndex index: Int) func addSubview(view: UIView) func insertSubview(view: UIView, belowSubview siblingSubview: UIView) func insertSubview(view: UIView, aboveSubview siblingSubview: UIView) 首先 ad

Swift - UIView的常用属性和常用方法总结

1,UIView常用的一些属性如下: frame:相对父视图的坐标和大小(x,y,w,h) bounds:相对自身的坐标和大小,所以bounds的x和y永远为0(0,0,w,h) center:相对父视图的中点坐标 transform:控制视图的放大缩小和旋转 superview:获取父视图 subviews:获取所有子视图 alpha:视图的透明度(0.0-1.0) tag:视图的标志(Int类型,默认等于0),设置后,可以通过viewWithTag方法拿到这个视图 2,UIView的常用方法