Ich erstelle eine UIButton
innerhalb einer UIView
. Wenn ich einen Übergang auf UIView
anwende, hört das myButton_TouchUpInside
Berührungsereignis auf UIButton
auf, zu schießen. Kann jemand beraten? (siehe bearbeiten)Touch-Ereignisse auf UIButton stoppen, nachdem die verzögerte Animation gestartet wurde
(Ich bin mit Xamarin hier)
UIView myView = new UIView()
{
BackgroundColor = UIColor.Black,
RestorationIdentifier = identifier,
UserInteractionEnabled = true,
ClipsToBounds = true
};
UIButton myButton = new UIButton()
{
BackgroundColor = UIColor.Red,
UserInteractionEnabled = true
};
myButton.TouchUpInside += myButton_TouchUpInside;
myButton.SizeToFit();
myButton.Frame = new CGRect(0, 10, myButton.Bounds.Width, myButton.Bounds.Height);
myView.AddSubview(myButton);
View.AddSubview(myView);
Click-Ereignisse Feuer an dieser Stelle. Wenn ich einen Übergang sie aufhören zu arbeiten, fügen Sie nach dem Übergang aufgetreten ist, nehme ich sie im Übergang hinter sich gelassen worden:
var myNewFrame = new CGRect(0, 50, myButton.Frame.Width, myButton.Frame.Height);
UIView.Transition(myView, 0.5, UIViewAnimationOptions.CurveEaseIn,() => { myView.Frame = myNewFrame; }, null);
Ich habe gelesen, dass die Frame
der UIButton
ist der Schlüssel hier. Ich überprüfte die Frame
nach dem Hinzufügen zu der UIView
und dann wieder in der fertigen Action
in der UIView.Transition
(nicht im Code oben gezeigt) und es ist Größe und Position sind genau das Gleiche.
bearbeiten
Es ist nicht der Übergang, der das Problem verursacht, dessen die Animation, die (die es ausblendet UIView
gleitet dann nach X Sekunden) folgt. Direkt nach dem Übergang ist dieser Code:
UIView.Animate(0.25, 10, UIViewAnimationOptions.CurveEaseInOut,() => { myView.Alpha = 0; },() => { myView.RemoveFromSuperview(); });
Wenn ich dies entfernen, funktioniert es.