[英]Is it possible to show extra image and button in Launch Screen in Swift
一直以来,如果我打开应用程序,我只需要显示带有 appname 的启动屏幕,但如果没有互联网,那么我需要显示带有额外图像和按钮的启动屏幕,例如这个应用程序启动 screenImage 。 这怎么可能?
对于互联网检查,我正在使用Reachability
如果我在 loginscreen 中编写以下代码,那么会在 loginscreen 中发出警报,但如何在启动屏幕中显示如上图所示:
在 LoginScreen 中尝试过代码:
import UIKit
import SystemConfiguration
class LoginViewController: UIViewController, UITextFieldDelegate {
override func viewDidLoad() {
super.viewDidLoad()
internetCheck()
}
func internetCheck(){
if Reachability.isConnectedToNetwork(){
Constants.printLog(message: "Internet Connection Available!")
}else{
let alert = UIAlertController(title: "Alert", message: "NO internet", preferredStyle: UIAlertController.Style.alert)
alert.addAction(UIAlertAction(title: "Click", style: UIAlertAction.Style.default, handler: nil))
self.present(alert, animated: true, completion: nil)
return
}
}
public class Reachability {
class func isConnectedToNetwork() -> Bool {
var zeroAddress = sockaddr_in(sin_len: 0, sin_family: 0, sin_port: 0, sin_addr: in_addr(s_addr: 0), sin_zero: (0, 0, 0, 0, 0, 0, 0, 0))
zeroAddress.sin_len = UInt8(MemoryLayout.size(ofValue: zeroAddress))
zeroAddress.sin_family = sa_family_t(AF_INET)
let defaultRouteReachability = withUnsafePointer(to: &zeroAddress) {
$0.withMemoryRebound(to: sockaddr.self, capacity: 1) {zeroSockAddress in
SCNetworkReachabilityCreateWithAddress(nil, zeroSockAddress)
}
}
var flags: SCNetworkReachabilityFlags = SCNetworkReachabilityFlags(rawValue: 0)
if SCNetworkReachabilityGetFlags(defaultRouteReachability!, &flags) == false {
return false
}
// Working for Cellular and WIFI
let isReachable = (flags.rawValue & UInt32(kSCNetworkFlagsReachable)) != 0
let needsConnection = (flags.rawValue & UInt32(kSCNetworkFlagsConnectionRequired)) != 0
let ret = (isReachable && !needsConnection)
return ret
}
}
}
我应该在哪里为启动屏幕编写代码? 如果没有互联网,是否可以在启动屏幕中添加额外的图像和按钮,或者我应该创建单独的视图控件来显示上述图像。 请建议并解释我的概念。
这种设计有一个技巧。 显然,您可以在启动屏幕中添加视图,但不能将某些代码绑定到这些视图(即 UIButton 等)。
因此,让我们深入了解这个技巧。
诀窍是:您可以在启动屏幕之后添加一个 controller,这意味着 controller 正是您应用程序的第一个屏幕。 然后,controller(我们将其命名为RootViewController)的 UI 设计将与您的启动屏幕的设计完全相同。
这会给用户一种他们仍在启动屏幕上的印象。 从那个RootViewController ,做你的可达性事情。
希望这可以帮助!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.