改变startDeviceMotionUpdatesToQueue中的帧



我试图改变我的UIView的框架值我从CMMotionManager和它的方法- 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];
}];

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

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

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

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

相关内容

  • 没有找到相关文章

最新更新