ScrollView swift 3中的垂直对齐图像
Posted
技术标签:
【中文标题】ScrollView swift 3中的垂直对齐图像【英文标题】:Vertical Align Images in ScrollView swift 3 【发布时间】:2016-10-04 11:02:58 【问题描述】:我正在尝试在我的滚动视图中垂直对齐我的图像。不幸的是,我无法弄清楚问题所在。我认为这是数学上的东西,这不是我最擅长的事情。 :(
我希望有人可以帮助我解决这个问题。我还将在下面提供我的代码和问题的图像:
//
// muscleListVC.swift
// ActiveRest
//
// Created by Fhict on 04/10/16.
// Copyright © 2016 Kevin Vugts. All rights reserved.
//
import UIKit
class muscleListVC: UIViewController
var images = [UIImageView]()
@IBOutlet weak var scrollView: UIScrollView!
override func viewDidLoad()
super.viewDidLoad()
print("Count: \(images.count)")
override func viewDidAppear(_ animated: Bool)
super.viewDidAppear(animated)
var contentHeight: CGFloat = 0.0
let scrollHeight = scrollView.frame.size.height
for x in 0...4
let image = UIImage(named: "muscle\(x).png")
let imageView = UIImageView(image: image)
images.append(imageView)
var newX: CGFloat = 0.0
newX = scrollHeight / 4 + scrollHeight * CGFloat(x) / 4
print("the size is \(newX)")
contentHeight += newX
scrollView.addSubview(imageView)
imageView.frame = CGRect(x: 0, y: newX, width: view.frame.size.width, height: 166)
print("the content height: \(contentHeight)")
scrollView.contentSize = CGSize(width: scrollView.frame.size.width, height: contentHeight)
scrollView.clipsToBounds = false
非常感谢!
【问题讨论】:
没有得到您的问题,提供的图像有什么问题? @BharatModi 图像需要位于前 0 位置。目前,它们的位置略低于框架顶部。 你对 imageView 设置了哪些约束,你的实际要求是什么,如果图像数量是动态的并且你需要它们垂直滚动,那么你为什么不使用 tableView? 我建议不要手动设置滚动的高度/内容大小,让自动布局根据里面的内容自行计算。 @BharatModi 将约束设置为屏幕的所有边缘。所以它适用于所有尺寸的手机。图像计数是动态的。如果可能的话,我想为此目的使用滚动视图。 :D 【参考方案1】:我不太确定您打算做什么,但我尝试稍微修改您的代码以使其正常工作。
override func viewDidLoad()
super.viewDidLoad()
let numberOfImages = 5
let imageViewHeight:CGFloat = 166.0
scrollView.contentSize = CGSize(width: view.frame.size.width, height: imageViewHeight*(CGFloat)(numberOfImages))
var newY:CGFloat = 0
for x in 0...(numberOfImages-1)
let image = UIImage(named: "muscle\(x).png")
let imageView = UIImageView(image: image)
images.append(imageView)
imageView.frame = CGRect(x: 0, y: newY, width: view.frame.size.width, height: imageViewHeight)
newY = newY + CGFloat(imageViewHeight)
scrollView.addSubview(imageView)
【讨论】:
您好,先生,这几乎就是我要找的东西,除了一件事。图 4 未显示。它仍然不在正确的位置。 (y: 0) 卷轴也不见了 你有五张图片吗? 我解决了:我有 5 张图片我添加了这行代码: 听起来不错。我还建议您阅读此tutorial,它很好地解释了 UIScrollView with Autolayout。以上是关于ScrollView swift 3中的垂直对齐图像的主要内容,如果未能解决你的问题,请参考以下文章
excel中表格文字水平居中及垂直对齐方式居中怎么设置?选项具体在哪里?如下图:
UITableViewCell中的Swift ScrollView不滚动