更改 startDeviceMotionUpdatesToQueue 中的帧

Posted

技术标签:

【中文标题】更改 startDeviceMotionUpdatesToQueue 中的帧【英文标题】:Change frame in startDeviceMotionUpdatesToQueue 【发布时间】:2013-06-14 23:44:53 【问题描述】:

我正在尝试使用从 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];
];

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

【问题讨论】:

【参考方案1】:

您在使用情节提要吗?问题可能是由于 Storyboard 中设置的约束覆盖了帧更改。

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

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

【讨论】:

以上是关于更改 startDeviceMotionUpdatesToQueue 中的帧的主要内容,如果未能解决你的问题,请参考以下文章

在运行时更改方向更改 ViewControllers

UIScrollView 更改 contentOffset 时更改框架

HAC集群更改IP(单节点更改全部节点更改)

HAC集群更改IP(单节点更改全部节点更改)

设备方向更改时更改 UIImage

phpmyadmin 在更改任何值时更改日期