gsdios / SDAutoLayout

One line of code to implement automatic layout. 一行代码搞定自动布局!支持Cell和Tableview高度自适应,Label和ScrollView内容自适应,致力于做最简单易用的AutoLayout库。The most easy way for autoLayout. Based on runtime.
MIT License
5.9k stars 1.28k forks source link

SDAutoLayou+Swift #109

Open GokuJiang opened 8 years ago

GokuJiang commented 8 years ago

_label.sd_resetLayout .leftSpaceToView(_container, kLabelMargin) .topSpaceToView(_container, kLabelTopMargin) .autoHeightRatio(0);

这样的代码换在swift里面应该怎么写??

fengqiangboy commented 8 years ago

_ = infoImageView.sd_layout() .topSpaceToView(timeLabel, 10)? .leftEqualToView(infoTitleLabel)? .rightEqualToView(infoTitleLabel)? .autoHeightRatio(16.0/9)

CREATE-AI commented 7 years ago

亲测。插件最新版本在swift 不能用了

jenhausu commented 7 years ago

可以吧 我剛試了 功能正常啊

fanyuexiang commented 6 years ago

` extension UIView { @discardableResult public func layout() -> SDAutoLayoutModel { return sd_layout() } }

extension SDAutoLayoutModel { / 设置距离其它view的间距 / @discardableResult public func topTo( view: UIView, space: CGFloat) -> SDAutoLayoutModel { return topSpaceToView(view, space)! }

@discardableResult
public func bottomTo(_ view: UIView, _ space: CGFloat) -> SDAutoLayoutModel {
    return bottomSpaceToView(view, space)!
}

@discardableResult
public func leftTo(_ view: UIView, _ space: CGFloat) -> SDAutoLayoutModel {
    return leftSpaceToView(view, space)!
}

@discardableResult
public func rightTo(_ view: UIView, _ space: CGFloat) -> SDAutoLayoutModel {
    return rightSpaceToView(view, space)!
}

/* 设置x、y、width、height、centerX、centerY 值 */
@discardableResult
public func x(is value: CGFloat) -> SDAutoLayoutModel {
    return xIs(value)!
}

@discardableResult
public func y(is value: CGFloat) -> SDAutoLayoutModel {
    return yIs(value)!
}

@discardableResult
public func width(is value: CGFloat) -> SDAutoLayoutModel {
    return widthIs(value)!
}

@discardableResult
public func height(is value: CGFloat) -> SDAutoLayoutModel {
    return heightIs(value)!
}

@discardableResult
public func centerX(is value: CGFloat) -> SDAutoLayoutModel {
    return centerXIs(value)!
}

@discardableResult
public func centerY(is value: CGFloat) -> SDAutoLayoutModel {
    return centerYIs(value)!
}

/*  设置宽度或者高度等于参照view的多少倍 */
@discardableResult
public func widthRatioTo(_ view: UIView, _ value: CGFloat) -> SDAutoLayoutModel {
    return widthRatioToView(view, value)!
}

@discardableResult
public func heightRatioTo(_ view: UIView, _ value: CGFloat) -> SDAutoLayoutModel {
    return heightRatioToView(view, value)!
}

@discardableResult
public func autoHeight(_ ratio: CGFloat) -> SDAutoLayoutModel {
    return autoHeightRatio(ratio)!
}

@discardableResult
public func autoWidth(_ ratio: CGFloat) -> SDAutoLayoutModel {
    return autoWidthRatio(ratio)!
}

@discardableResult
public func isWidthEqualToHeight() -> SDAutoLayoutModel {
    return widthEqualToHeight()!
}

@discardableResult
public func isHeightEqualToWidth() -> SDAutoLayoutModel {
    return heightEqualToWidth()!
}

/* 设置最大宽度和高度、最小宽度和高度 */
@discardableResult
public func maxWidth(_ value: CGFloat) -> SDAutoLayoutModel {
    return maxWidthIs(value)!
}

@discardableResult
public func maxHeight(_ value: CGFloat) -> SDAutoLayoutModel {
    return maxHeightIs(value)!
}

@discardableResult
public func minWidth(_ value: CGFloat) -> SDAutoLayoutModel {
    return minWidthIs(value)!
}

@discardableResult
public func minHeight(_ value: CGFloat) -> SDAutoLayoutModel {
    return minHeightIs(value)!
}

/* 设置和某个参照view的边距相同 */
@discardableResult
public func leftEqualTo(_ view: UIView) -> SDAutoLayoutModel {
    return leftEqualToView(view)!
}

@discardableResult
public func rightEqualTo(_ view: UIView) -> SDAutoLayoutModel {
    return rightEqualToView(view)!
}

@discardableResult
public func topEqualTo(_ view: UIView) -> SDAutoLayoutModel {
    return topEqualToView(view)!
}

@discardableResult
public func bottomEqualTo(_ view: UIView) -> SDAutoLayoutModel {
    return bottomEqualToView(view)!
}

@discardableResult
public func centerXEqualTo(_ view: UIView) -> SDAutoLayoutModel {
    return centerXEqualToView(view)!
}

@discardableResult
public func centerYEqualTo(_ view: UIView) -> SDAutoLayoutModel {
    return centerYEqualToView(view)!
}

/* 填充父view(快捷方法) */
public func spaceToSuperViewIs(_ value: UIEdgeInsets) {
     spaceToSuperView(value)
}

@discardableResult
public func offsetIs(_ value: CGFloat) -> SDAutoLayoutModel {
    return offset(value)!
}

} ` 稍微自己写一下拓展,避免在swift下报黄色警告⚠️,然后还有一堆的"?" 或者"!"