小编Sim*_*mon的帖子

iPhone拖放

试图为iPhone应用程序发生一些基本的拖放功能.

我目前尝试执行此操作的代码如下:

- (void) touchesMoved:(NSSet*)touches withEvent:(UIEvent*)event
{
    UITouch *touch = [touches anyObject];

    CGPoint location = [touch locationInView:self];
    self.center = location;
}
Run Code Online (Sandbox Code Playgroud)

此代码具有触摸的UIView闪烁的结果,同时它跟随触摸.稍微玩了一下之后,我也注意到UIView似乎从屏幕上的0,0位置闪烁到当前触摸的位置.

我有什么想法我做错了吗?

iphone drag-and-drop objective-c

16
推荐指数
1
解决办法
2万
查看次数

检测iPhone屏幕方向

我想以45度的增量检测iPhone的方向.理想情况下,我希望能够沿任何轴获得方向角.

我需要做的检测类似于当T方向改变时,iPhone的Trism如何向屏幕的当前底部位置闪烁箭头.

我有一些编码,但实际上不明白加速度计读数如何工作,可以使用正确方向的微调.我当前的代码记录了当前的角度,但即使手机是平的,我的读数每秒也会变化很多.

- (void) checkOrientation:(UIAccelerometer*)accelerometer didAccelerate:(UIAcceleration*)acceleration
{
    int accelerationX = acceleration.x * kfilteringFactor + accelerationX * (1.0 - kfilteringFactor);
    int accelerationY = acceleration.y * kfilteringFactor + accelerationY * (1.0 - kfilteringFactor);

    float currentRawReading = (atan2(accelerationY, accelerationX)) * 180/M_PI;
    NSLog(@"Angle: %f",currentRawReading);
}
Run Code Online (Sandbox Code Playgroud)

手机平放时来自日志的样本:

2009-06-16 17:29:07.987 [373:207] Angle: 0.162292
2009-06-16 17:29:07.994 [373:207] Angle: 179.838547
2009-06-16 17:29:08.014 [373:207] Angle: 179.836182
2009-06-16 17:29:08.032 [373:207] Angle: -90.000000
2009-06-16 17:29:08.046 [373:207] Angle: 179.890900
2009-06-16 17:29:08.059 [373:207] Angle: -90.000000
2009-06-16 17:29:08.074 [373:207] Angle: 179.917908
2009-06-16 17:29:08.088 …
Run Code Online (Sandbox Code Playgroud)

iphone accelerometer orientation

5
推荐指数
1
解决办法
6646
查看次数