inside doesn ios iphone swift uiscrollview

ios - doesn - uiscrollview swift programmatically



UIScrollView programáticamente en Swift (2)

No he podido encontrar una manera de habilitar con precisión el desplazamiento horizontal y vertical mediante programación con Swift (mis objetos son programáticos, por lo que no es factible utilizar el diseño automático en IB).

El tutorial que seguí permite desplazarse en ambas direcciones según lo previsto. El problema es que mi botón permanece en el mismo lugar que ocupa parte de la pantalla, sin importar dónde se desplace. He tenido este mismo resultado con otro tutorial y estoy bastante confundido en cuanto a por qué está sucediendo esto.

No he podido encontrar una respuesta a esta pregunta, así que supongo que otras encontrarán que esto es beneficioso.

Aquí está el código que tengo. Hice un proyecto muy básico basado en este tutorial: http://koreyhinton.com/blog/uiscrollview-crud.html

import UIKit class ViewController: UIViewController, UIScrollViewDelegate { var scrollView: UIScrollView! var containerView = UIView() override func viewDidLoad() { super.viewDidLoad() let buttonOne = UIButton.buttonWithType(UIButtonType.System) as UIButton buttonOne.frame = CGRectMake(10, 50, 50, 50) buttonOne.backgroundColor = UIColor.greenColor() buttonOne.setTitle("test", forState: UIControlState.Normal) buttonOne.addTarget(self, action: "buttonAction1x1:", forControlEvents: UIControlEvents.TouchUpInside) self.scrollView = UIScrollView() self.scrollView.delegate = self self.scrollView.contentSize = CGSizeMake(1000, 1000) containerView = UIView() scrollView.addSubview(containerView) view.addSubview(scrollView) self.view.addSubview(buttonOne) } override func viewDidLayoutSubviews() { super.viewDidLayoutSubviews() scrollView.frame = view.bounds containerView.frame = CGRectMake(0, 0, scrollView.contentSize.width, scrollView.contentSize.height) } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() } }


Así que deberías usar la siguiente línea.

containerView.userInteractionEnabled = true


Su código funciona perfectamente, pero hay un pequeño problema al agregar buttonOne en la vista.

Ha agregado buttonOne en self.view (es decir, subview de self.view), no containerView que está en scrollView.

Debes usar el siguiente código

containerView.addSubview(buttonOne)

en lugar de

self.view.addSubview(buttonOne)