2016-05-15 15 views
1

Ich habe mich gefragt, ob es möglich ist, ein Tableview auf Touch zu scrollen? Grundsätzlich, wenn Sie mehrere Zellen haben und Sie scrollen, und Sie haben die Hälfte jeder Zelle auf dem Bildschirm und Sie berühren einen von ihnen, ich will es scrollen, so dass der, den Sie berühren, auf dem Bildschirm zentriert wird. Der Grund dafür ist, dass wenn Sie Tasten haben und sie eine Taste während des Scrollens zwischen Zellen berühren, würde die Zelle mit der Taste in die Mitte des Bildschirms gebracht, so dass sie es sehen könnten.Autoscroll to tableviewcell on touch

Antwort

1

Ich nehme an, dass Sie etwas wie myArray.count verwenden, um die Anzahl der Zellen in Ihrer numberOfRowsInSection Methode zu definieren. Also, wenn Sie zu der Zelle der mittleren Position scrollen möchten, können Sie myArray.count/2 verwenden, um die Nummer der Zeile zu finden.

NSIndexPath* ip = [NSIndexPath indexPathForRow:myArray.count/2 inSection:0]; 
[self.myTable scrollToRowAtIndexPath:ip atScrollPosition:UITableViewScrollPositionTop animated:YES]; 

Swift Version:

var ip: NSIndexPath = NSIndexPath(forRow: myArray.count/2, inSection: 0) 
self.myTable.scrollToRowAtIndexPath(ip, atScrollPosition: .Top, animated: true) 

Hoffnung, das hilft!

+0

Jede Chance, dass Sie das rasche umwandeln kann? –

+0

Siehe meine Bearbeitung, ich habe diese Seite dazu verwendet: [link] (https://objectivec2swift.com/#/home/converter/) –

1

Maria Antwort auf Swift umgewandelt:

var ip = NSIndexPath(forRow: myArray.count/2, inSection: 0) 
self.myTable.scrollToRowAtIndexPath(ip, atScrollPosition: .Top, animated: true)