用于快速原型设计和快速开发的 UIKit 工具集
convenience init (x: CGFloat,
y: CGFloat,
w: CGFloat,
h: CGFloat)
var x: CGFloat {
get {
return self.frame.origin.x
} set (value) {
self.frame = CGRect (x: value, y: self.y, width: self.w, height: self.h)
}
}
var y: CGFloat {
get {
return self.frame.origin.y
} set (value) {
self.frame = CGRect (x: self.x, y: value, width: self.w, height: self.h)
}
}
var w: CGFloat {
get {
return self.frame.size.width
} set (value) {
self.frame = CGRect (x: self.x, y: self.y, width: value, height: self.h)
}
}
var h: CGFloat {
get {
return self.frame.size.height
} set (value) {
self.frame = CGRect (x: self.x, y: self.y, width: self.w, height: value)
}
}
var position: CGPoint {
get {
return self.frame.origin
} set (value) {
self.frame = CGRect (origin: value, size: self.frame.size)
}
}
var size: CGSize {
get {
return self.frame.size
} set (value) {
self.frame = CGRect (origin: self.frame.origin, size: size)
}
}
var left: CGFloat {
get {
return self.x
} set (value) {
self.x = value
}
}
var right: CGFloat {
get {
return self.x + self.w
} set (value) {
self.x = value - self.w
}
}
var top: CGFloat {
get {
return self.y
} set (value) {
self.y = value
}
}
var bottom: CGFloat {
get {
return self.y + self.h
} set (value) {
self.y = value - self.h
}
}
func leftWithOffset (offset: CGFloat) -> CGFloat
func rightWithOffset (offset: CGFloat) -> CGFloat
func topWithOffset (offset: CGFloat) -> CGFloat
func botttomWithOffset (offset: CGFloat) -> CGFloat
enum AnchorPosition: CGPoint {
case TopLeft = "{0, 0}"
case TopCenter = "{0.5, 0}"
case TopRight = "{1, 0}"
case MidLeft = "{0, 0.5}"
case MidCenter = "{0.5, 0.5}"
case MidRight = "{1, 0.5}"
case BottomLeft = "{0, 1}"
case BottomCenter = "{0.5, 1}"
case BottomRight = "{1, 1}"
}
func setAnchorPosition (anchorPosition: AnchorPosition)
添加阴影
func addShadow (offset: CGSize,
radius: CGFloat,
color: UIColor,
opacity: Float)
添加边框
func addBorder (width: CGFloat,
color: UIColor)
设置边框的圆角半径
func setCornerRadius (radius: CGFloat)
向边框添加描边
func drawStroke (width: CGFloat,
color: UIColor)
绘制圆
func drawCircle (fillColor: UIColor,
strokeColor: UIColor,
strokeWidth: CGFloat)
绘制圆弧
func drawArc (from: CGFloat,
to: CGFloat,
clockwise: Bool,
width: CGFloat,
fillColor: UIColor,
strokeColor: UIColor,
lineCap: String)
旋转
func setRotationX (x: CGFloat)
func setRotationY (y: CGFloat)
func setRotationZ (z: CGFloat)
func setRotation (x: CGFloat,
y: CGFloat,
z: CGFloat)
缩放
func setScale (x: CGFloat,
y: CGFloat)
常量
let UIViewAnimationDuration: NSTimeInterval = 1
let UIViewAnimationSpringDamping: CGFloat = 0.5
let UIViewAnimationSpringVelocity: CGFloat = 0.5
动画方法
func animate (animations: (()->Void)!,
completion: ((Bool)->Void)? = nil)
func spring (animations: (()->Void)!,
completion: ((Bool)->Void)? = nil)
点击
func addTapGesture (tapNumber: NSInteger,
target: AnyObject, action: Selector)
滑动
func addSwipeGesture (
direction: UISwipeGestureRecognizerDirection,
numberOfTouches: Int,
target: AnyObject,
action: Selector)
拖动
func addPanGesture (target: AnyObject,
action: Selector)
顶部
var top: CGFloat {
get {
if let nav = self.navigationController {
if nav.navigationBarHidden {
return view.top
} else {
return nav.navigationBar.bottom
}
} else {
return view.top
}
}
}
底部
var bottom: CGFloat {
get {
if let tab = tabBarController {
if tab.tabBar.hidden {
return view.bottom
} else {
return tab.tabBar.top
}
} else {
return view.bottom
}
}
}
var applicationFrame: CGRect {
get {
return CGRect (x: view.x, y: top, width: view.w, height: bottom - top)
}
}
var navigationBar: UINavigationBar? {
get {
return navigationController?.navigationBar
}
}
获取设备导航栏高度
var navigationBarHeight: CGFloat {
get {
if let nav = self.navigationController {
return nav.navigationBar.h
}
return 0
}
}
获取或设置导航栏颜色
var navigationBarColor: UIColor? {
get {
return navigationController?.navigationBar.tintColor
} set (value) {
navigationController?.navigationBar.barTintColor = value
}
}
AttributedStrings
属性用于访问、添加或更新标签的富文本 private var UILabelAttributedStringArray: UInt8 = 0
var attributedStrings: [NSAttributedString]? {
get {
return objc_getAssociatedObject(self, &UILabelAttributedStringArray) as? [NSAttributedString]
} set (value) {
objc_setAssociatedObject(self, &UILabelAttributedStringArray, value, UInt(OBJC_ASSOCIATION_RETAIN_NONATOMIC))
}
}
添加
func addAttributedString (text: String,
color: UIColor,
font: UIFont)
func addAttributedString (attributedString: NSAttributedString)
更新
func updateAttributedStringAtIndex (index: Int,
attributedString: NSAttributedString)
func updateAttributedStringAtIndex (index: Int,
newText: String)
func getEstimatedHeight () -> CGFloat
func fitHeight ()
subscript (i: Int) -> String {
return String(Array(self)[i])
}
枚举
enum FontType: String
enum FontName: String
class func Font (name: FontName, type: FontType, size: CGFloat) -> UIFont
甚至可以针对特定字体进行自定义
class func HelveticaNeue (type: FontType, size: CGFloat) -> UIFont
打印单行上的字体族
class func PrintFontFamily (font: FontName)
class func randomColor () -> UIColor
class func RGBColor (r: CGFloat,
g: CGFloat,
b: CGFloat) -> UIColor
class func RGBAColor (r: CGFloat,
g: CGFloat,
b: CGFloat,
a: CGFloat) -> UIColor
计算固定高度的可能宽度
func aspectWidthForHeight (height: CGFloat) -> CGFloat
计算固定宽度可能的高度
func aspectHeightForWidth (width: CGFloat) -> CGFloat
依据宽度调整图片大小(自动计算高度并保持纵横比)
func aspectResizeWithWidth (width: CGFloat) -> UIImage
依据高度调整图片大小(自动计算宽度并保持纵横比)
func aspectResizeWithHeight (height: CGFloat) -> UIImage
CGPoint
定制的操作符 func + (left: CGPoint, right: CGPoint) -> CGPoint
func - (left: CGPoint, right: CGPoint) -> CGPoint
StringLiteralConvertable
实现 public init(stringLiteral value: StringLiteralType)
public init(extendedGraphemeClusterLiteral value: StringLiteralType)
public init(unicodeScalarLiteral value: StringLiteralType) {
self = CGPointFromString(value)
CGSize
定制的操作符 func + (left: CGSize, right: CGSize) -> CGSize
func - (left: CGSize, right: CGSize) -> CGSize
屏幕宽度
var ScreenWidth: CGFloat {
get {
return UIScreen.mainScreen().bounds.size.width
}
}
屏幕高度
var ScreenHeight: CGFloat {
get {
return UIScreen.mainScreen().bounds.size.height
}
}
状态栏高度
var StatusBarHeight: CGFloat {
get {
return UIApplication.sharedApplication().statusBarFrame.height
}
}
func degreesToRadians (angle: CGFloat) -> CGFloat
将 [min, max] 转换为 [0, 1]
func normalizeValue (value: CGFloat,
min: CGFloat,
max: CGFloat) -> CGFloat
将 [0, 1] 转换为 [min, max]
func convertNormalizedValue (value: CGFloat,
min: CGFloat,
max: CGFloat) -> CGFloat
func alert (title: String,
message: String,
cancelAction: ((UIAlertAction!)->Void)? = nil,
okAction: ((UIAlertAction!)->Void)? = nil) -> UIAlertController
func barButtonItem (imageName: String,
action: (AnyObject)->()) -> UIBarButtonItem
func barButtonItem (title: String,
color: UIColor,
action: (AnyObject)->()) -> UIBarButtonItem
actionBlock:
的常规 UIButton
var actionBlock: ((sender: BlockButton) -> ())? {
didSet {
self.addTarget(self, action: "action:", forControlEvents: UIControlEvents.TouchUpInside)
}
}
func action (sender: BlockButton) {
actionBlock! (sender: sender)
}
UIWebViewDelegate
的基于阻塞操作的常规 UIWebView
var didStartLoad: ((NSURLRequest) -> ())?
var didFinishLoad: ((NSURLRequest) -> ())?
var didFailLoad: ((NSURLRequest, NSError) -> ())?
var shouldStartLoadingRequest: ((NSURLRequest) -> (Bool))?