ios - 如何将照片(以及标签和按钮)放入 ScrollView ,每次在 Storyboard 中添加新照片时让它变长

标签 ios iphone swift uiscrollview storyboard

现在在我的 Storyboard 上有一个 View ,我有一个连接到 ScrollView 的 segue。我想做的是,一旦按下 segue 按钮, Storyboard上第一个 View 上的内容(图像、标签、按钮)就会转到 ScrollView 。

有没有一种方法,当我进入 ScrollView 时, ScrollView 的大小将只是适应第一个 View 中新输入的信息所需的大小。

还有一种方法可以保存放入 ScrollView 的内容,以便用户可以添加到 ScrollView 以使其更大。如果我需要使用它来保存 ScrollView 信息,我的应用程序中有 Firebase。

下面是我的两个 View Controller (我的 ScrollView 没有 View Controller ,但如果需要我可以制作一个)和我的 Storyboard 的屏幕截图,如果有帮助的话!

import UIKit

class PhotoShareViewController: UIViewController {

    @IBOutlet weak var imageView: UIImageView!
    @IBOutlet weak var contentTextView: UITextView!

    @IBOutlet weak var thatTextField: UITextField!
    @IBOutlet weak var thisTextField: UITextField!

    var presenter: PhotoShareModuleInterface!
    var image: UIImage!

    @IBAction func thisUploadPhoto(_ sender: Any) {
        if thisTextField.text != "" && thatTextField.text != "" {
            performSegue(withIdentifier: "segue", sender: nil)
        }
    }

    override func prepare(for segue: UIStoryboardSegue, sender: Any?) {

        let photoShareLabelViewController = segue.destination as! PhotoShareLabelViewController

        photoShareLabelViewController.thisString = thisTextField.text!
        photoShareLabelViewController.thatString = thatTextField.text!
        photoShareLabelViewController.imageLoaded = image
    }

    override func viewWillAppear(_ animated: Bool) {
        super.viewWillAppear(animated)

        imageView.image = image
    }

    override var prefersStatusBarHidden: Bool {
        return true
    }

    @IBAction func didTapCancel(_ sender: AnyObject) {
        presenter.cancel()
        presenter.pop()
    }

    @IBAction func didTapDone(_ sender: AnyObject) {
        guard let message = thatTextField.text, !message.isEmpty else {
            return
        }
        guard let messageOne = thisTextField.text, !messageOne.isEmpty else {
            return
        }

        presenter.finish(with: image, content:message)
        presenter.dismiss()
    }
}

extension PhotoShareViewController: PhotoShareViewInterface {

    var controller: UIViewController? {
        return self
    }
}

import UIKit

class PhotoShareLabelViewController: UIViewController {

    @IBOutlet weak var thisLabel: UILabel!
    @IBOutlet weak var thatLabel: UILabel!
    @IBOutlet weak var thisButton: UIButton!
    @IBOutlet weak var thatButton: UIButton!
    @IBOutlet weak var changedImage: UIImageView!

    var thisCounter = 0
    var thatCounter = 0

    @IBAction func pressedDoneButtonLabel(_ sender: Any) {
        print("done")
    }

    var presenter: PhotoShareModuleInterface!
    var imageLoaded: UIImage!

    @IBAction func pressedThisButton(_ sender: Any) {
        thisCounter += 1
        print(thisCounter)
    }

    @IBAction func pressedThatButton(_ sender: Any) {
        thatCounter += 1
        print(thatCounter)
    }

    var thisString = String()
    var thatString = String()

    @IBAction func pressedButtonDone(_ sender: Any) {
        print("done")
    }

 //   @IBAction func pressedButtonCancel(_ sender: Any) {
 //       print("cancel")
 //   }

    override func viewDidLoad() {
        super.viewDidLoad()

        thisLabel.text = thisString
        thisButton.setTitle(thisString, for: UIControlState.normal)

        thatLabel.text = thatString
        thatButton.setTitle(thatString, for: UIControlState.normal)

        changedImage.image = imageLoaded
        // Do any additional setup after loading the view.
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }
}

enter image description here

非常感谢!感谢您提供任何帮助!

最佳答案

听起来您尝试做的事情实际上是为 UITableViewUICollectionView 制作的。 UITableView 实际上是 UIScrollView 的子类,这是有充分理由的——内容会根据需要不断扩展。您需要将数据模型更改为包含您想要显示的任何内容的数组,但这应该相当容易。

关于ios - 如何将照片(以及标签和按钮)放入 ScrollView ,每次在 Storyboard 中添加新照片时让它变长,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45597481/

相关文章:

ios - 在 iOS 中加载某些事件时如何禁用导航栏后退按钮?

ios - 调整图像大小而不扭曲或裁剪它

iOS Swift 动态更新 UICollectionView

swift - 如何在矩阵的特定位置获得 reValue?

ios - 如何调整自定义 UIView 的大小并按比例保持其自定义绘制?

ios - 锁定 UIScrollView 从右向左滚动

iphone - 有没有办法查明 iPhone/iPad 应用程序是否已安装?

javascript - UIWebView 的 JavaScript 评估器是否能够使用 JS 的 RegExp 对象?

iphone - 向 UITableView 插入行崩溃

ios - dismissViewControllerAnimated 导致相同的 View Controller 再次加载