Ich habe eine UIButton in einer UITableView Zelle, in einer UITableView. Das Ergebnis ist eine Liste mit Schaltflächen in ihr. Wenn der UIButton gedrückt wird, ruft er eine touchUpInside-Methode auf, und alles ist gut. Womit ich Probleme habe, ist, dass ich eine neue Ansicht von der Position (Rahmen) der Schaltfläche herauszoomen möchte, wenn sie gedrückt wird. Wenn ich nur die Grenzen der UIButton erhalten
origButton.frame
Es handelt sich um die Koordinaten der UITableCell, etwa 3,50,40,25. Dies ist das gleiche für alle Schaltflächen in der Liste, so egal, welche Schaltfläche in der Liste gedrückt wird, dann bekomme ich diese Koordinaten. Wenn ich nun tatsächlich die Koordinaten meiner Ansicht abgreife
self.frame
wenn die Methode touchUpInside aufgerufen wird, erhalte ich etwas Brauchbareres. Ich erhalte dann die Koordinaten meiner Zelle. Toll!!! Ich kann also eine neue Ansicht aus dem UIButton herauszoomen. Großartig!!
Aber hier ist das Problem: Wenn Sie in der Liste nach oben scrollen und auf die Schaltfläche tippen, wird die Ansicht nicht von der Schaltfläche, sondern von einer Stelle unterhalb des Bildschirms aus gezoomt. Das Problem ist, dass die Koordinaten, die ich habe, für die Zelle gelten, BEVOR sie nach oben gescrollt wird. Tatsächlich spiegeln alle Koordinaten für alle Zellen ihre tatsächliche Position in der Tabelle wider, wobei nur die Koordinaten des ersten sichtbaren Satzes verwendet werden können. Durch das Scrollen haben sich diese Koordinaten nicht geändert.
Ich dachte, ich könnte vielleicht die Koordinaten der Superansicht verwenden, aber die sind nicht hilfreich.
Weiß jemand, wie man genaue Koordinaten für Schaltflächen (oder Ansichten oder andere Elemente), die in einer Tabelle aufgeführt sind, erhält, oder ist dies nicht möglich?
So berechne ich den Mittelpunkt meiner neuen Ansicht:
floatingView.center = CGPointMake(origButton.frame.origin.x +
origButton.frame.size.width / 2,
self.frame.origin.y + self.superview.frame.origin.y);
Gracias.