swift - 使用导航栏注意事项获取屏幕中心

标签 swift xcode uiview centering

我正在尝试将 UIActivityIndi​​cator 居中并在我的应用程序中重用它。我面临一个问题,我的某些 View 必须位于导航栏下方,而另一些则不是。这恰好使我的事件指示器在 View 不在导航栏下方的 View 上显示低于中心。例如:

enter image description here

StackOverflow 上的所有答案似乎都属于图片 #2。

我只是对 UIView 进行了扩展,通过将其添加为 subview 覆盖来显示和隐藏事件指示器。检查 StackOverflow 上的多个帖子,我没有发现任何可以重复这个问题的内容。

我的问题是,在生产应用程序中,如何仅使用一个功能在这两种情况下成功地将此 View 居中,但仍支持回到 9.3 的 IOS 版本

最佳答案

SWIFT 3:

Extension 将您的 App delegate 的 keyWindow 中的 subview 居中...使其居中,无论它在您的应用程序中的何处:

extension UIView {

    public func addSubviewScreenCenter() {
        if let keyWindow = UIApplication.shared.keyWindow {
            keyWindow.addSubview(self)
            self.center()
        }
    }

    public func removeFromWindowView() {
        if self.superview != nil {
            self.removeFromSuperview()
        }
    }
}

关于swift - 使用导航栏注意事项获取屏幕中心,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50180099/

相关文章:

objective-c - ressizedImageWithCapInsets 或可拉伸(stretch)ImageWithLeftCapWidth :24 topCapHeight:15

iOS 8 youtube 视频嵌入

objective-c - 自定义 MKMapView 标注不响应触摸事件

ios - 在 iPhone 应用程序中绘制/动画此场景的最佳方式

ios - -[UIPickerTableView _createPreparedCellForGlobalRow :withIndexPath:],/SourceCache/UIKit_Sim/UIKit-2903.2/UITableView.m:7768 断言失败

ios - swift中的音频播放器没有获得音量和音高的值(value)

swift - Cocoapod podspec 上的预处理器标志

swift - 斯坦福计算器应用程序不断崩溃

iOS NSCoreDataCoreSpotlightDelegate,如何重新索引所有项目

xcode - 阿拉伯语 NSString 显示 Xcode 调试器和日志之间不同的字母顺序