【问题标题】:UIImageView in ScrollView programmatically以编程方式在 ScrollView 中的 UIImageView
【发布时间】:2015-03-16 16:36:35
【问题描述】:

我正在尝试将 UIImageViews 添加到 ScrollView 以获得水平分页效果。

    let pagesScrollViewSize = scrollView.frame.size
    scrollView.contentSize = CGSizeMake(pagesScrollViewSize.width * CGFloat(pageImages.count), pagesScrollViewSize.height)


    for var index = 0; index < 3; ++index {
        var frame = containerView.bounds
        frame.origin.x = frame.size.width * CGFloat(index)
        frame.origin.y = 0.0

        let newPageView = UIImageView(image: pageImages[index])

        newPageView.frame = frame
        newPageView.contentMode = .ScaleAspectFit

        scrollView.addSubview(newPageView)
    }

这是我的布局:

但在手机/模拟器上,图像被缩放到 ScrollView 高度。我想将图像缩放到滚动视图宽度,因此一页上将是一张图像。

【问题讨论】:

  • 您是否尝试过创建比ViewController 更长的ScrollView
  • @Buster 滚动视图工作正常,如您所见,我正在设置 contentsize scrollView.contentSize = CGSizeMake(pagesScrollViewSize.width * CGFloat(pageImages.count), pagesScrollViewSize.height)

标签: ios swift uiscrollview uiimageview


【解决方案1】:

要将图像缩放到滚动视图宽度,您需要先调整大小(将图像缩放到宽度)+ 裁剪图像。将内容模式设置为ScaleAspectFit 只会“...通过保持纵横比缩放内容以适应视图的大小。视图边界的任何剩余区域都是透明的”。

【讨论】:

  • 如果上下都是透明区域,这对我来说没问题。可以以宽度等于滚动视图宽度并且上下将是透明区域的方式缩放图像吗?
  • 如果要完全适合纵向图像,则需要调整滚动视图的大小。如果您只想按宽度缩放,则需要裁剪图像
【解决方案2】:

问题是我在 Storyboard 中使用了自动布局,但我在添加新视图时没有添加约束。所以我在情节提要中手动添加了这些照片,如下所示:UIScrollView Paging Autolayout & Storyboard

【讨论】:

    猜你喜欢
    • 2023-03-05
    • 1970-01-01
    • 2022-10-19
    • 2011-08-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-09
    • 1970-01-01
    相关资源
    最近更新 更多