HTML5   发布时间:2022-04-27  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了ios – 使用Aspect Fill图像模式的奇怪UIPageViewController滑动行为大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我刚刚创建了一个带有页面内容视图控制器的UIPageViewController,它由单个 ImageView和一个Button组成.它几乎完美无缺,但是当我尝试仅在垂直视图中滑动视图时,它有一个主要问题,为我的ImageView设置了Aspect Fill模式(这基本上是为此设置的).

您可以在此处看到此行为:https://youtu.be/2yl6UXbUGQg

我正在使用autolayout,Button约束与ImageView(全尺寸)对齐,ImageView约束设置为Superview …

码:

1)UIPageViewController:

class ViewController: UIPageViewController,UIPageViewControllerDatasource {

    var arrPagetitle: NSArray = NSArray()
    var arrPagePhoto: NSArray = NSArray()

    override func viewDidLoad() {
        super.viewDidLoad()

        arrPagetitle = ["page 1","page 2","page 3"]
        arrPagePhoto = ["slider-1.jpg","slider-2.jpg","slider-3.jpeg"]

        self.datasource = self
        self.setViewControllers([getViewControllerATindex(0)] as [UIViewController],direction: .ForWARD,animated: false,completion: nil)
    }

    func pageViewController(pageViewController: UIPageViewController,viewControllerBeforeViewController viewController: UIViewController) -> UIViewController? {
        let pageContent: PageContentViewController = viewController as! PageContentViewController
        var index = pageContent.pageIndex
        if ((index==0) || (index == NsnotFound)) {
            return nil
        }
        index -= 1
        return getViewControllerATindex(indeX)
    }

    func pageViewController(pageViewController: UIPageViewController,viewControllerAfterViewController viewController: UIViewController) -> UIViewController? {
        let pageContent: PageContentViewController = viewController as! PageContentViewController
        var index = pageContent.pageIndex
        if index == NsnotFound {
            return nil
        }
        index += 1
        if index == arrPagetitle.count {
            return nil
        }
        return getViewControllerATindex(indeX)
    }

    func getViewControllerATindex(index: NSInteger) -> PageContentViewController {
        let pageContentViewController = self.storyboard?.instantiateViewControllerWithIdentifier("PageContentViewController") as! PageContentViewController
        pageContentViewController.strtitle = "\(arrPagetitle[index])"
        pageContentViewController.strPhotoName = "\(arrPagePhoto[index])"
        pageContentViewController.pageIndex = index
        return pageContentViewController
    }
}

2)内容视图控制器,UIViewController:

class PageContentViewController: UIViewController {

    @IBOutlet weak var imageView: UIImageView!
    @IBOutlet weak var labeltitle: UIButton!

    var pageIndex: Int = 0
    var strtitle: String!
    var strPhotoName: String!


    override func viewDidLoad() {
        super.viewDidLoad()

        self.imageView.image = UIImage(named: self.strPhotoName)
        self.labeltitle.settitle(self.strtitle,forState: .Normal)
    }
}

解决方法

您的图像视图从一个视图控制器溢出到其他视图控制器,因为您需要在图像视图上将clipsToBounds设置为true.这将防止图像视图的内容超出图像视图的范围.

大佬总结

以上是大佬教程为你收集整理的ios – 使用Aspect Fill图像模式的奇怪UIPageViewController滑动行为全部内容,希望文章能够帮你解决ios – 使用Aspect Fill图像模式的奇怪UIPageViewController滑动行为所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。