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);
}
}
}