现在在我的 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.
}
}
非常感谢!感谢您提供任何帮助!
最佳答案
听起来您尝试做的事情实际上是为 UITableView
或 UICollectionView
制作的。 UITableView
实际上是 UIScrollView
的子类,这是有充分理由的——内容会根据需要不断扩展。您需要将数据模型更改为包含您想要显示的任何内容的数组,但这应该相当容易。
关于ios - 如何将照片(以及标签和按钮)放入 ScrollView ,每次在 Storyboard 中添加新照片时让它变长,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45597481/