滑动视图,如SnapChat

时间:2014-08-22 12:03:52

标签: swift swipe gif ios8

我这样做:

    self.addChildViewController(blackView)
    self.scrollView.addSubview(blackView.view)
    blackView.didMoveToParentViewController(self)

但即使我只做

,代码也能正常工作
    self.scrollView.addSubview(blackView.view)

所以我想知道忽略第一行和最后一行是否会成为应用程序的问题?

2 个答案:

答案 0 :(得分:0)

调用这些方法可以让blackView控制器正确地完成UIViewController生命周期,就像调用viewWillAppear:', viewDidappear:`等一样。

您甚至可以添加willMoveToParentViewController

self.addChildViewController(blackView)
self.scrollView.addSubview(blackView.view)
blackView.didMoveToParentViewController(self)

如果您要移除控制器,则必须执行类似的过程:

blackView.willMoveToParentViewController(nil)
blackView.view.removeFromSuperview
blackView.removeFromParentViewController

That link也解释了这一点,并提供了更多示例。

答案 1 :(得分:0)

你在Objective-C中有一个很好的例子:

  

https://github.com/devenergy/SpinKit-ObjC/tree/master/Demo/SpinKit

一些代码:

UIScrollView *scrollView = [[UIScrollView alloc] init];
scrollView.pagingEnabled = YES;
scrollView.alwaysBounceVertical = NO;
scrollView.alwaysBounceHorizontal = YES;

UIView *panel1 = [[UIView alloc] initWithFrame:CGRectOffset(screenBounds, screenWidth * index, 0.0)];
[scrollView addSubview:panel1];

UIView *panel2 = [[UIView alloc] initWithFrame:CGRectOffset(screenBounds, screenWidth * index, 0.0)];
[scrollView addSubview:panel2];