Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion Demo/Demo/Base.lproj/Main.storyboard
Original file line number Diff line number Diff line change
Expand Up @@ -100,7 +100,7 @@
</viewController>
<placeholder placeholderIdentifier="IBFirstResponder" id="1JQ-CP-Uo0" userLabel="First Responder" customClass="UIResponder" sceneMemberID="firstResponder"/>
</objects>
<point key="canvasLocation" x="2077" y="555"/>
<point key="canvasLocation" x="2075.36231884058" y="554.46428571428567"/>
</scene>
</scenes>
<resources>
Expand Down
8 changes: 4 additions & 4 deletions Sources/StackKit/HStackView.swift
Original file line number Diff line number Diff line change
Expand Up @@ -170,7 +170,7 @@ extension HStackView {
let unspacerViews = viewsWithoutSpacer()
let spacersCount = spacerViews().map({ isSpacerBetweenInTwoViews(spacerView: $0) }).filter({ $0 }).count
let number = unspacerViews.count - spacersCount - 1
return (frame.width - viewsWidth() - lengthOfAllFixedLengthSpacer()) / CGFloat(max(1, number))
return (_stackContentRect.width - viewsWidth() - lengthOfAllFixedLengthSpacer()) / CGFloat(max(1, number))
}

private func viewsWidth() -> CGFloat {
Expand All @@ -197,7 +197,7 @@ extension HStackView {
frame.size.height = contentSize.height
}
for subview in effectiveSubviews {
subview.frame.size.height = _stackContentWidth
subview.frame.size.height = _stackContentHeight

// fix #https://github.com/iWECon/StackKit/issues/21
guard alignment == .center else {
Expand All @@ -208,7 +208,7 @@ extension HStackView {
}

private func fillWidth() {
let maxW = frame.width - lengthOfAllFixedLengthSpacer() - lengthOfAllFixedLengthDivider()
let maxW = _stackContentRect.width - lengthOfAllFixedLengthSpacer() - lengthOfAllFixedLengthDivider()
var w = (maxW) / CGFloat(viewsWithoutSpacerAndDivider().count)

let unspacersView = viewsWithoutSpacerAndDivider()
Expand All @@ -223,7 +223,7 @@ extension HStackView {
extension HStackView {

private func fillDivider() {
let maxHeight = effectiveSubviews.filter({ ($0 as? DividerView) == nil }).map({ $0.frame.size.height }).max() ?? frame.height
let maxHeight = effectiveSubviews.filter({ ($0 as? DividerView) == nil }).map({ $0.frame.size.height }).max() ?? _stackContentRect.height
for divider in effectiveSubviews.compactMap({ $0 as? DividerView }) {
var maxLength = divider.maxLength
if maxLength == .greatestFiniteMagnitude {
Expand Down
8 changes: 4 additions & 4 deletions Sources/StackKit/Layer/HStackLayer.swift
Original file line number Diff line number Diff line change
Expand Up @@ -141,7 +141,7 @@ extension HStackLayer {
let unspacerViews = viewsWithoutSpacer()
let spacersCount = spacerLayers().map({ isSpacerBetweenInTwoLayers(spacerLayer: $0) }).filter({ $0 }).count
let number = unspacerViews.count - spacersCount - 1
return Swift.max(0, (frame.width - viewsWidth() - lengthOfAllFixedLengthSpacer()) / CGFloat(max(1, number)))
return Swift.max(0, (_stackContentRect.width - viewsWidth() - lengthOfAllFixedLengthSpacer()) / CGFloat(max(1, number)))
}

private func viewsWidth() -> CGFloat {
Expand Down Expand Up @@ -169,7 +169,7 @@ extension HStackLayer {
frame.size.height = contentSize.height
}
for sublayer in effectiveSublayers {
sublayer.frame.size.height = _stackContentWidth
sublayer.frame.size.height = _stackContentHeight

guard alignment == .center else {
continue
Expand All @@ -179,7 +179,7 @@ extension HStackLayer {
}

private func fillWidth() {
let maxW = frame.width - lengthOfAllFixedLengthSpacer() - lengthOfAllFixedLengthDivier()
let maxW = _stackContentRect.width - lengthOfAllFixedLengthSpacer() - lengthOfAllFixedLengthDivier()
var w = (maxW) / CGFloat(viewsWithoutSpacerAndDivider().count)

let unspacersView = viewsWithoutSpacerAndDivider()
Expand All @@ -193,7 +193,7 @@ extension HStackLayer {
extension HStackLayer {

private func fillDivider() {
let maxWidth = effectiveSublayers.filter({ ($0 as? DividerLayer) == nil }).map({ $0.frame.size.height }).max() ?? frame.height
let maxWidth = effectiveSublayers.filter({ ($0 as? DividerLayer) == nil }).map({ $0.frame.size.height }).max() ?? _stackContentRect.height
for divider in effectiveSublayers.compactMap({ $0 as? DividerLayer }) {
var maxLength = divider.maxLength
if maxLength == .greatestFiniteMagnitude {
Expand Down
8 changes: 4 additions & 4 deletions Sources/StackKit/Layer/VStackLayer.swift
Original file line number Diff line number Diff line change
Expand Up @@ -143,7 +143,7 @@ extension VStackLayer {
let unspacerViews = viewsWithoutSpacer()
let spacersCount = spacerLayers().map({ isSpacerBetweenInTwoLayers(spacerLayer: $0) }).filter({ $0 }).count
let number = unspacerViews.count - spacersCount - 1
return Swift.max(0, (frame.height - viewsHeight() - lengthOfAllFixedLengthSpacer()) / CGFloat(max(1, number)))
return Swift.max(0, (_stackContentRect.height - viewsHeight() - lengthOfAllFixedLengthSpacer()) / CGFloat(max(1, number)))
}

private func viewsHeight() -> CGFloat {
Expand Down Expand Up @@ -183,7 +183,7 @@ extension VStackLayer {
///
/// 填充高度, 所有视图(排除 spacer)高度一致
private func fillHeight() {
let maxH = frame.height - lengthOfAllFixedLengthSpacer() - lengthOfAllFixedLengthDivier()
let maxH = _stackContentRect.height - lengthOfAllFixedLengthSpacer() - lengthOfAllFixedLengthDivier()
var h = (maxH) / CGFloat(viewsWithoutSpacerAndDivider().count)

let unspacersView = viewsWithoutSpacerAndDivider()
Expand All @@ -197,7 +197,7 @@ extension VStackLayer {
extension VStackLayer {

private func fillDivider() {
let maxWidth = effectiveSublayers.filter({ ($0 as? DividerLayer) == nil }).map({ $0.frame.size.width }).max() ?? frame.width
let maxWidth = effectiveSublayers.filter({ ($0 as? DividerLayer) == nil }).map({ $0.frame.size.width }).max() ?? _stackContentRect.width
for divider in effectiveSublayers.compactMap({ $0 as? DividerLayer }) {
var maxLength = divider.maxLength
if maxLength == .greatestFiniteMagnitude {
Expand Down Expand Up @@ -251,7 +251,7 @@ extension VStackLayer {
}

let unspacerViewsMaxHeight = unspacerViewsHeight + unspacerViewsSpacing
let spacersHeight = (frame.height - unspacerViewsMaxHeight - self.lengthOfAllFixedLengthSpacer())
let spacersHeight = (_stackContentRect.height - unspacerViewsMaxHeight - self.lengthOfAllFixedLengthSpacer())
let spacerWidth = spacersHeight / CGFloat(self.dynamicSpacerLayers().count)

let spacerViews = self.spacerLayers()
Expand Down
8 changes: 4 additions & 4 deletions Sources/StackKit/VStackView.swift
Original file line number Diff line number Diff line change
Expand Up @@ -162,7 +162,7 @@ extension VStackView {
let unspacerViews = viewsWithoutSpacer()
let spacersCount = spacerViews().map({ isSpacerBetweenInTwoViews(spacerView: $0) }).filter({ $0 }).count
let number = unspacerViews.count - spacersCount - 1
return (frame.height - viewsHeight() - lengthOfAllFixedLengthSpacer()) / CGFloat(max(1, number))
return (_stackContentRect.height - viewsHeight() - lengthOfAllFixedLengthSpacer()) / CGFloat(max(1, number))
}

private func viewsHeight() -> CGFloat {
Expand Down Expand Up @@ -201,7 +201,7 @@ extension VStackView {

/// 填充高度, 所有视图(排除 spacer)高度一致
private func fillHeight() {
let maxH = frame.height - lengthOfAllFixedLengthSpacer() - lengthOfAllFixedLengthDivider()
let maxH = _stackContentRect.height - lengthOfAllFixedLengthSpacer() - lengthOfAllFixedLengthDivider()
var h = (maxH) / CGFloat(viewsWithoutSpacerAndDivider().count)

let unspacersView = viewsWithoutSpacerAndDivider()
Expand All @@ -216,7 +216,7 @@ extension VStackView {
extension VStackView {

private func fillDivider() {
let maxWidth = effectiveSubviews.filter({ ($0 as? DividerView) == nil }).map({ $0.frame.size.width }).max() ?? frame.width
let maxWidth = effectiveSubviews.filter({ ($0 as? DividerView) == nil }).map({ $0.frame.size.width }).max() ?? _stackContentRect.width
for divider in effectiveSubviews.compactMap({ $0 as? DividerView }) {
var maxLength = divider.maxLength
if maxLength == .greatestFiniteMagnitude {
Expand Down Expand Up @@ -274,7 +274,7 @@ extension VStackView {

// 非 spacerView 的所有宽度
let unspacerViewsMaxHeight = unspacerViewsHeight + unspacerViewsSpacing
let spacersHeight = (frame.height - unspacerViewsMaxHeight - self.lengthOfAllFixedLengthSpacer())
let spacersHeight = (_stackContentRect.height - unspacerViewsMaxHeight - self.lengthOfAllFixedLengthSpacer())
let spacerHeight = spacersHeight / CGFloat(self.dynamicSpacerViews().count)

let spacerViews = self.spacerViews()
Expand Down