我正在尝试使用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];
}];
但我的观点根本没有动。如果我记录我的框架,我可以在每次更新时看到更改...那么为什么我的视图不会在屏幕上移动?
答案 0 :(得分:0)
您使用的是Storyboard吗?问题可能是由于Storyboard中设置的约束覆盖了帧更改。
通过代码更改自动布局约束,然后尝试上面的帧更改。
要强制更改,您可以在帧更改后使用 - (void)setNeedsLayout方法。