4 Stimmen

Wie kann ich ein Bild in Abhängigkeit vom Beschleunigungssensor des iPhone drehen?

Hai, ich benutze Beschleunigungssensor, um uiimageview durch Geräteausrichtung wie UIInterfaceOrientationLandscapeRight, etc. zu drehen. wenn ich nicht Geräteausrichtung verwenden, (wenn ich iphone auf den Tisch setzen, Beschleunigungssensor muss in bestimmten angle.The Gerät ist in UIInterfaceOrientationPortrait) wie kann ich es tun? ich drehe das Bild durch die Mitte dieses imageview, aber ich konnte nicht verstehen, in welchem Winkel es gedreht wird, ist es drehen auf der Grundlage der Mitte (als Ursprung)? ( Ich möchte eine grafische Darstellung mit Ursprung )Wenn ich die Drehung in einem bestimmten Winkel stoppen möchte, wie kann ich das tun?der Code: kann mir jemand helfen?

- (void)accelerometer:(UIAccelerometer *)accelerometer didAccelerate:(UIAcceleration *)acceleration 
{
    rollingX =  (acceleration.x * 0.1) + (rollingX * (1.0 - 0.1));
    rollingY =  (acceleration.y * 0.1) + (rollingY * (1.0 - 0.1));

    float xx = -rollingX; 
    float yy = rollingY;
    float angle = atan2(yy, xx); 
        self.angle += M_PI / 2.0;

    if(self.angle >= -2.25 && self.angle <= -0.25)
    {
        if(deviceOrientation != UIInterfaceOrientationPortrait)
        {
            deviceOrientation = UIInterfaceOrientationPortrait;
            self.updatingIsEnabled =YES;
            self.foamView.center = CGPointMake(center.x,center.y);
        }

    }
    else if(self.angle >= -1.75  && self.angle <= 0.75)
    {

        if(deviceOrientation != UIInterfaceOrientationLandscapeRight)
        {
            deviceOrientation = UIInterfaceOrientationLandscapeRight;
            self.updatingIsEnabled =YES;
        }

    }
    else if(self.angle >= 0.75 && self.angle <= 2.25)
    {
        if(deviceOrientation != UIInterfaceOrientationPortraitUpsideDown)
        {
            deviceOrientation = UIInterfaceOrientationPortraitUpsideDown;
            self.updatingIsEnabled =YES;
            self.foamView.center = CGPointMake(center.x,center.y);
        }
    }
    else if(self.angle <= -2.25 || self.angle >= 2.25)
    {
        if(deviceOrientation != UIInterfaceOrientationLandscapeLeft)
        {
            deviceOrientation = UIInterfaceOrientationLandscapeLeft;
            self.updatingIsEnabled =YES;
            self.foamView.center = CGPointMake(center.x,center.y);

        }
    }
}

2voto

J.Biard Punkte 305

In diesem von Apple bereitgestellten Codebeispiel wird der Beschleunigungsmesser verwendet, um die Ausrichtung eines Bildes in der Mitte des Bildschirms anzupassen. Wir hoffen, dass dieses Codebeispiel Ihnen hilft, das zu finden, was Sie brauchen. (Sie benötigen Zugriff auf die Apple-Entwickler-Website, um dieses Code-Beispiel herunterzuladen)

oalTouch Muster

Jubel -

0voto

Dan Lorenc Punkte 5340

Sie können auch eine Kombination von CGAffineTransforms für die Ansicht selbst verwenden. Diese Matrizen transformieren eine Ansicht durch Rotation oder Translation. Sie können den Prozess sogar animieren, wenn Sie möchten. Wenn Sie genau das vorhaben, kann ich Ihnen einige Codebeispiele zur Verfügung stellen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X