Ich möchte Unteransicht zu blättern Ansicht, gibt es meinen Code zum Hinzufügen von Unteransicht zu blättern, ich bin hinzufügen Geste für Unteransichten, und ich möchte, wenn eine Unteransicht dieser Unteransicht in suchen Sichtweite. Wie kann das gemacht werden?Wenn Scroll View Subview Scroll bei Subview Position
var startpoint = UIScreen.main.bounds.width/4
var with = 150
var height = 55
var space = 15
override func viewDidLoad() {
super.viewDidLoad()
let max = 4
scrollView.delegate = self
let bound = self.view.bounds.width/4
for index in 0...max {
catView = CategoryView.init(frame: CGRect(x: (with + space) * index + Int(startpoint) , y: 0, width: with, height: height))
let label1 = UILabel(frame: CGRect(x: 0, y: 0, width: 20, height: 20))
catView.backgroundColor = #colorLiteral(red: 0.6000000238, green: 0.6000000238, blue: 0.6000000238, alpha: 1)
label1.text = String(index)
label1.textColor = #colorLiteral(red: 0.4745098054, green: 0.8392156959, blue: 0.9764705896, alpha: 1)
label1.textAlignment = .center
catView.addSubview(label1)
catView.tag = index
self.allView.append(catView)
self.scrollView.addSubview(catView)
}
let tapGestureRecognizer = UITapGestureRecognizer(target:self, action: #selector(self.subviewTapped(recognizer:)))
scrollView.addGestureRecognizer(tapGestureRecognizer)
scrollView.isUserInteractionEnabled = true
self.scrollView.contentSize = CGSize(width:CGFloat(scrollView.subviews.count * 150) + CGFloat(bound) , height:self.scrollView.frame.height)
}
func subviewTapped(recognizer : UIGestureRecognizer) {
let tappedPoint: CGPoint = recognizer.location(in: self.scrollView!)
let x: CGFloat = tappedPoint.x
let y: CGFloat = tappedPoint.y
print(tappedPoint)
print(x)
print(y)
let index = Int(Int(x - startpoint)/with)
self.label.text = String(index)
var scrollRect = scrollView.subviews[index].frame
scrollRect.origin.x = self.view.center.x
let centerView = CGRect(x: Int(self.view.center.x), y: 0, width: 75, height: 55)
scrollView.scrollRectToVisible(centerView, animated: true)
scrollView.contentOffset = CGPoint(x: scrollRect.origin.x, y: 0)
}
wie Yandex.taxi Anwendung
Was möchten Sie tun, wenn sich 'CategoryView' in der Mitte der sichtbaren Bildlaufansicht befindet? – dmorrow
ich möchte, wenn diese ansicht hinzufügen eine andere blättern ansicht oben, ich werde bildbeispiel hinzufügen. – ava
@dmorrow Ich bearbeite meinen Code nun kann ich Hexenansicht in der Bildlaufansicht ausgewählt finden, aber jetzt möchte ich, wenn Sie diese Teilansicht blättern Ansicht gescrollt und ausgewählte Unteransicht in der Mitte der Ansicht suchen. – ava