我试图改变我的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方法。