gpt4 book ai didi

ios - 打开 SWRevealController 菜单后如何使 View 不可见 - Swift

转载 作者:行者123 更新时间:2023-11-28 06:25:22 24 4
gpt4 key购买 nike

我目前正在努力做到这一点,以便当用户使用我的应用程序时,用户将看到一个动画 View ,上面写着“向左滑动以显示菜单!”一旦用户向左滑动以调出菜单,我希望不显示此 View 。

这里有一些截图/图表显示了我的意思:

Demonstration

Demonstration2

我已经尝试了一些我在互联网上查找的代码,例如(animView 是包含标签“向左滑动以显示菜单”的 View ),但是这个解决方案不起作用:

if (self.revealViewController().frontViewPosition != FrontViewPosition.left) {

animView.isHidden = true

}
else if (self.revealViewController().frontViewPosition == FrontViewPosition.left){
animView.isHidden = false
}

编辑:我已经尝试了下面评论中提出的解决方案,但我不确定如何使用它。以下是我尝试过的:

func revealController(revealController: SWRevealViewController!, didMoveToPosition position: FrontViewPosition) {
switch(position){
case FrontViewPosition.leftSideMost: break

animView.isHidden = true


default:
break
}
}

类中与 ANIMVIEW 相关的完整代码

import Foundation
import UIKit
import SVProgressHUD
import Canvas

class WebViewHome: UIViewController, UIWebViewDelegate, SWRevealViewControllerDelegate{


@IBOutlet weak var WebViewTst: UIWebView!
@IBOutlet weak var animView: CSAnimationView!

override func viewDidLoad() {
super.viewDidLoad()

self.navigationController?.navigationBar.topItem!.title = "Home"

let URL = NSURL(string: "https://gunnoracle.com/")
WebViewTst.loadRequest(NSURLRequest(url: URL! as URL) as URLRequest)

let topSpace = -190
let bottomSpace = -3045
let leftSpace = -40
let rightSpace = -40
WebViewTst.scrollView.contentInset = UIEdgeInsets(top: CGFloat(topSpace), left: CGFloat(leftSpace), bottom: CGFloat(bottomSpace), right: CGFloat(rightSpace))
WebViewTst.scrollView.bounces = false

WebViewTst.scrollView.maximumZoomScale = 1.0
WebViewTst.scrollView.minimumZoomScale = 1.0

WebViewTst.delegate = self



}

private func revealController(revealController: SWRevealViewController!, didMoveToPosition position: FrontViewPosition) {

if (revealController.frontViewPosition == FrontViewPosition.leftSide){




}

else{


}


}
func webView(_ webView: UIWebView, shouldStartLoadWith request: URLRequest, navigationType: UIWebViewNavigationType) -> Bool {

switch navigationType {

case .linkClicked:

let topSpace = -170
let bottomSpace = -2840
let leftSpace = -40
let rightSpace = -40

animView.startCanvasAnimation()
WebViewTst.scrollView.contentInset = UIEdgeInsets(top: CGFloat(topSpace), left: CGFloat(leftSpace), bottom: CGFloat(bottomSpace), right: CGFloat(rightSpace))
WebViewTst.scrollView.bounces = false

WebViewTst.scrollView.maximumZoomScale = 1.0
WebViewTst.scrollView.minimumZoomScale = 1.0

WebViewTst.delegate = self

default:
break
}
return true
}

func webViewDidStartLoad(_ webView: UIWebView) {

SVProgressHUD.show(withStatus: "Loading...")
SVProgressHUD.setDefaultStyle(SVProgressHUDStyle.dark)
SVProgressHUD.setRingThickness(1.0)
NSLog("Webview has started loading")
}

func webViewDidFinishLoad(_ webView: UIWebView) {
SVProgressHUD.dismiss()
NSLog("Webview has successfully loaded")
}

override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}

}

最佳答案

第一次显示标签(第一个问题):

您可以使用 SWreveal 的 didMoveToPosition 方法来识别用户是否滑动了菜单。并检查如果 revealController.frontViewPosition == FrontViewPositionRight 然后隐藏标签并在 SQLite 中保存用户已经滑动左侧菜单的记录。并在ViewDidLoadViewWillAppear 中用SQLite 记录检查标签是否需要显示。您可以使用 FMDB:github.com/ccgus/fmdb

对于 UILabel 位置(第二个问题):

应该是2个 subview (webview是第一个 subview ,label是另一个 subview )。您可以在stackoverflow.com/questions/4631878/中学习

记住:

首先,不要private revealController 委托(delegate)不能工作的函数。同时添加 SWRevealViewControllerDelegate

其次,您忘记将 self.revealViewController().delegate = self 放入 ViewDidAppear

关于ios - 打开 SWRevealController 菜单后如何使 View 不可见 - Swift,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42082124/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com