nsomar / OAStackView

Porting UIStackView to iOS 7+
MIT License
2.14k stars 200 forks source link

ios7 compatibility #100

Open paleozogt opened 7 years ago

paleozogt commented 7 years ago

PR #87 breaks the ability to have OAStackView be a static framework (because it uses Swift), and consequently breaks iOS 7 compatibility.

OAStackView's own Examples project (Deployment Target = 7.1) is broken because of this:

ld: embedded dylibs/frameworks are only supported on iOS 8.0 and later (@rpath/OAStackView.framework/OAStackView) for architecture armv7

It can't be worked around, either, as Cocoapods ~doesn't~ can't support static frameworks with Swift. For example if we remove use_frameworks! from the Podfile we get

[!] Pods written in Swift can only be integrated as frameworks; add `use_frameworks!` to your Podfile or target to opt into using it. The Swift Pod being used is: OAStackView

What problem is OAStackViewProxy.swift trying to solve? PR #60 solves the backwards compatibility problem with objc_allocateClassPair.

paleozogt commented 7 years ago

While PR #60 lets you use UIStackView in IB files, what I think PR #87 is after is to let you use OAStackViewProxy in IB files and have it inherit from the right thing (OAStackView or UIStackView, depending on the OS).

There's a simpler way to get at this functionality. We can just have OAStackViewProxy inherit from UIStackView. Since PR #60 makes UIStackView inherit from OAStackView on pre-IOS7, this will work out.

UInt2048 commented 3 years ago

I imagine this is no longer an issue with #101 merged?