- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
Xcode/Swift
相对较新,但有一些其他语言的经验。
我正处于应用程序的初级阶段,正在尝试实现以下功能:
在UIPageView
环境中,当用户向前滑动时,标签(其值为整数)增加1。当用户向后滑动时,标签减少1。
我有一个 UIViewController
作为 Storyboard ID PageContentViewController
的内容页面。
基本上,我的想法是声明一个初始设置为 0 的整数变量,然后创建一个 swipedBack()
和 swipedRight()
函数来更新变量的值然后将 PageContentViewController
上的标签文本设置为该变量的值。这些函数然后返回新的 PageContentViewController
。
我遇到了一些奇怪的行为。也就是说,该应用正在构建并运行良好。
初始屏幕加载标签为 0。然后我向前滑动,它更新为 1。但是然后......如果我再次向前滑动,标签保持为 1。但是然后......如果我继续前进,它就会按预期运行 - 转到 2,然后是 3。然后如果我反向,它会变得更加奇特。
如果我的值为 4,然后向后滑动,它会减少到 3。但是再次向后滑动它会回到 4,然后继续滑动,它会按预期运行 (4,3,2 ,1...)。我显然有概念上的误解,希望得到一些帮助。
这是我的代码:
import UIKit
class ViewController: UIPageViewController, UIPageViewControllerDataSource {
var arrPageTitle: NSArray = NSArray()
var t: Int = 0
override func viewDidLoad() {
super.viewDidLoad()
self.dataSource = self
self.setViewControllers([getViewControllerAtIndex()] as [UIViewController], direction: UIPageViewControllerNavigationDirection.forward, animated: false, completion: nil)
}
func pageViewController(_ pageViewController: UIPageViewController, viewControllerBefore viewController: UIViewController) -> UIViewController? {
return swipedBack()
}
func pageViewController(_ pageViewController: UIPageViewController, viewControllerAfter viewController: UIViewController) -> UIViewController? {
return swipedForward()
}
func getViewControllerAtIndex() -> PageContentViewController {
let pageContentViewController = self.storyboard?.instantiateViewController(withIdentifier: "PageContentViewController") as! PageContentViewController
pageContentViewController.strTitle = "\(t)"
return pageContentViewController
}
func swipedForward() -> PageContentViewController {
let pageContentViewController = self.storyboard?.instantiateViewController(withIdentifier: "PageContentViewController") as! PageContentViewController
t = t + 1
pageContentViewController.strTitle = "\(t)"
return pageContentViewController
}
func swipedBack() -> PageContentViewController {
let pageContentViewController = self.storyboard?.instantiateViewController(withIdentifier: "PageContentViewController") as! PageContentViewController
t = t - 1
pageContentViewController.strTitle = "\(t)"
return pageContentViewController
}
}
最佳答案
我想这可能是因为一旦你改变方向,最近的 UIViewController 还在内存中,因此委托(delegate)函数没有被调用。
我建议改用 pageViewControllerWillTransitionTo
函数。每次滑动时都应调用此方法。同样,如果您希望在滑动后调用,您可以使用 pageViewControllerDidFinishAnimating
。
为了检测您滑动的方向,您可以尝试同时使用 UISwipeGestureRecognizer,并调用将递增/递减变量值的函数。实际上,现在我想起来了,你也许可以在没有委托(delegate)功能的情况下使用这个手势识别器。由你决定。
关于swift - 更新 UIPageView 中的标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42199995/
我创建了一个简单的应用程序单击按钮后,我将页码发布到第二个 View 这是示例代码 ChildViewController *initialViewController = [self viewCon
我正在开发一个应用程序,我希望在模糊效果之上有一个 UIPageView。我知道如何使用 Storyboard 来完成它,但是由于我将它作为 subview 添加到另一个 View 之上,所以我看不出
我正在尝试以全景方式在 UIPageView 后面实现移动的背景图片。 (类似于android主屏幕的概念) PageView 具有过渡风格“滚动”。 到目前为止,我发现的只是使用委托(delegat
我正在使用 UIPageViewController 制作一个应用程序。现在我在每个页面中只有一个 UIWebView。现在我在 viewWillAppear 中运行 [_webView loadRe
Xcode/Swift 相对较新,但有一些其他语言的经验。 我正处于应用程序的初级阶段,正在尝试实现以下功能: 在UIPageView环境中,当用户向前滑动时,标签(其值为整数)增加1。当用户向后滑动
我有一个包含 4 个页面的综合浏览量。 pageView 使用的是之前 UIViewController 的导航栏。我想在导航栏中设置我的 UIPageView 按钮以转到新的 UIView。几乎没有
对 iOS 开发还很陌生,很好奇是否有可能,如果可能的话,最好的人愿意去做。 我想让 UIPageViewController 成为屏幕的一部分。即,我想要一个菜单栏,也许还有一些额外的控件,然后
我有一个包含 3 个页面的 PageViewController。当用户在最后一页上从右向左滑动时,我想从 PageViewController 切换到 AnotherViewController 。
所以我的问题如下: 我有一个 UIViewController,在其中我定义了一个 UIPageViewController 并将其 View 添加到层次结构中,并在其之上添加了一个 UITabl
我试图让 pageControl 指示器点工作,但我无法找到如何让当前 viewController 将 pageControl.currentPage 设置为正确的索引. 这就是我设置 UIPage
我正在制作一个网页浏览,里面有一堆可滚动的页面。我有 pageview 工作,它旋转的 viewcontrollers 每个内部都有一个 ScrollView 。问题是,我认为,滚动不会发生,因为触摸
我有一个图书应用程序,大约有 30 页,每个页面都是一个 UIViewController 中的 UIView。我想将其转换为使用 StoryBoarding 和 UIPageViews 的应用程序。
这发生在所有平台上,但此描述适用于通过 Xcode 的 iPhone 5s 8.4 模拟器。 我一直在使用 C++ 和 cocos2d-x 3.6 版以及 Cocostudio 2.3.1 开发游戏。
Swift 4:我正在使用 NSNotification post 并观察两个 View Controller 之间的对象。我的问题是更新观察给定接收到的对象的 viewController。 有两件
我是一名优秀的程序员,十分优秀!