0

我正在尝试使用从 CMMotionManager 及其方法获得的值更改 UIView 的框架 - startDeviceMotionUpdatesToQueue:withHandler

我写了这样的草稿:

[_motionManager startDeviceMotionUpdatesToQueue:theQueue withHandler:^(CMDeviceMotion *motion, NSError *error) {
        CGRect frame = _backgroundView.frame;
        double x = motion.attitude.roll;
        frame.origin.x = x*10;
        [_backgroundView setFrame:frame];
}];

但我的观点根本不动。如果我记录我的框架,我可以在每次更新时看到变化......那么为什么我的视图没有在屏幕上移动?

4

1 回答 1

0

你在使用故事板吗?问题可能是由于 Storyboard 中设置的约束覆盖了帧更改。

通过代码更改自动布局约束,然后尝试上面的框架更改。

要强制更改,可以在帧更改后使用 - (void)setNeedsLayout 方法。

于 2013-06-15T00:26:18.417 回答