Tag: 旋转

风景xib显示为肖像

我有一个视图控制器和单独的笔尖和风景的笔尖文件。 在旋转时,我加载相应的笔尖。 方法 shouldAutorotateToInterfaceOrientation and willRotateToInterfaceOrientation 被叫,笔尖确实改变了。 问题: the landscape nib does not appear as landscape, but portrait! The status bar is correctly rotated and appears on the top: (Sorry, couldn't paste the image, because my account is new. The screenshot is in landscape, with a landscape status bar, but a landscape view shown as […]

为什么这个旋转方法给图像死angular? OpenCV的

我使用这种方法来旋转一个cvMat ,每当我运行它我得到一个旋转的图像,但是有很多deadspace下面。 void rotate(cv::Mat& src, double angle, cv::Mat& dst) { int len = std::max(src.cols, src.rows); cv::Point2f pt(len/2., len/2.); cv::Mat r = cv::getRotationMatrix2D(pt, angle, 1.0); cv::warpAffine(src, dst, r, cv::Size(len, len)); } 当给这个图像: 我得到这个图像: 图像已被旋转,但你可以看到一些额外的像素已被添加,我怎么只能旋转原始图像,而不是添加任何额外的像素? 方法调用: rotate(src, skew, res); res是dst 。

程序化界面方向更改不适用于iOS

所以,我有一个项目,当用户按下一个button时,我需要强制改变方向。 我已经在github上创build了一个示例应用程序来演示这个问题。 @interface DefaultViewController () { UIInterfaceOrientation _preferredOrientation; } 一些旋转处理位 – (BOOL)shouldAutorotate { return YES; } – (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation { return _preferredOrientation; } 和一个切换 – (IBAction)toggleButtonPressed:(id)sender { _preferredOrientation = UIInterfaceOrientationIsPortrait(_preferredOrientation) ? UIInterfaceOrientationLandscapeRight : UIInterfaceOrientationPortrait; [self forceOrientationChange]; } – (void)forceOrientationChange { UIViewController *vc = [[UIViewController alloc] init]; [self presentViewController:vc animated:NO completion:nil]; [UIView animateWithDuration:.3 animations:^{ [vc dismissViewControllerAnimated:NO completion:nil]; […]

如何防止模式UIImagePickerController旋转?

我有一个完全支持轮换的应用程序。 我在模式上添加一个UIImagePickerController不支持,我不能让控制器留在肖像。 换句话说,我需要禁用旋转的UIImagePickerController所以它保持肖像,而不会删除我的应用程序的其余部分的旋转。 这似乎是基本的,但我似乎无法find它。 我怎样才能防止这种轮换? UPDATE 正如所build议的,我试着用下面的代码进行子类化: @interface UAImagePickerController : UIImagePickerController { } @end @implementation UAImagePickerController – (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation { return UIDeviceOrientationIsPortrait(toInterfaceOrientation); } @end 该行没有被击中所有断点…我认为必须有一些关于UIImagePickerView

态度变化 – angular度和轴问题 – 四元math

我有一个应用程序loggingangular度,当用户在一个对象周围走动时,指向设备(最好)在对象的中心。 angular度根据用户的指令重置 – 参考姿态得到重置。 使用欧拉angular产生的Gimbal锁,所以我目前正在使用四元数和计算angular度这样: double angleFromLastPosition = acos(fromLastPositionAttitude.quaternion.w) * 2.0f; 这发出了良好的精度,它完美的工作,如果设备的俯仰和偏航不会改变。 换句话说,当angular度显示360度时,我最终会在圆圈的起始位置。 问题1:如果设备的偏航和俯仰发生轻微变化(用户不直接指向对象的中心),angleFromLastPosition也是如此。 我理解这一部分,因为我的angular度公式只是显示了3D空间中两个设备态度之间的angular度。 场景: 我标记旋转姿态的开始,并开始围绕对象在一个圆圈中指向中心 我停在45度,并通过指向更高或更低来改变设备的音高。 angular度相应地改变。 我想看到的是:即使俯仰或偏航改变,angular度仍然保持在45度。 问题1是,我怎样才能使用四元数来计算设备的滚动量,而忽略其他两个坐标轴的变化(至less在一定的合理度数内)。 问题2:如果我旋转一下,然后完全冻结设备(在三脚架上,所以根本没有晃动),angleFromLastPosition以大约10-20秒的速度漂移1度,而且看起来不是线性的。 换句话说,它起初漂移很快,然后大大减缓。 有时我完全没有漂移 – 如果设备静止,angular度是坚如磐石的。 这让我迷失在了解正在发生的事情上。 问题2,这里发生了什么,我该如何照顾漂stream? 我经历了不less篇文章和教程,现在四元math已经超越了我,希望有人能够帮助提示,链接或几行代码。

iOS 6:旋转后忽略父模态的modalPresentationStyle

使用iOS6的iPad,我们有一个模式视图控制器将扩展到全屏的错误,即使它被告知使用“表单”演示文稿样式。 但是,这只有在有两个模态,一个父模态和一个子模态时才会发生。 所以这是如何创build和呈现第一个模式: UINavigationController *navigationController = [[[UINavigationController alloc] initWithRootViewController:controller] autorelease]; navigationController.modalPresentationStyle = UIModalPresentationFormSheet; [parentController presentModalViewController:navigationController animated:YES]; // parentController is my application's root controller 这是如何创build和呈现孩子模态: UINavigationController *navigationController = [[[UINavigationController alloc] initWithRootViewController:controller] autorelease]; navigationController.modalPresentationStyle = UIModalPresentationFormSheet; [parentController presentModalViewController:navigationController animated:YES]; // parentController is the navigationController from above 所以当从横向旋转到纵向时,即使我们旋转回风景,父模式也会扩展到全屏模式。 当我们拥有父模态本身(没有子模态)时,它就像预期的那样工作,这就是它仍然是表单样式。 请注意,这仅在iOS6(设备和模拟器)上发生,并且不会在iOS 5(模拟器上发生并由testing人员报告工作)发生。 到目前为止,我已经尝试了以下成功: 将wantsFullScreenLayout设置为NO 强制wantsFullScreenLayout总是通过覆盖它返回NO 确定我的控制器内的导航控制器也指定UIModalPresentationFormSheet 实现preferredInterfaceOrientationForPresentation 升级到iOS 6.0.1 […]

在iOS 8中嵌套UICollectionViews,AutoLayout和旋转

我开始使用AutoLayout进行大型项目,并对此感到惊喜。 但是,现在我不得不调整项目来适应轮换和大小类,并且我有很大的麻烦让观点行为正确。 基本的问题是,我有UICollectionViews的细胞,再次包含UICollectionViews 。 当设备旋转时,基本集合视图将其单元格调整为正确,但嵌套的集合视图中的所有单元格都不会自动调整为新的大小。 经过调查后归结为: 当调用viewWillTransitionToSize ,基础集合视图还没有旋转(如预期的那样) 在调用viewDidLayoutSubviews之后的一段时间,基础集合视图现在具有旋转的大小 – 但不幸的是,它的单元格还没有 – 它们仍然具有旋转之前的宽度 即使在coordinator animateAlongsideTransition … completion:{} block viewWillTransitionToSize单元格还没有新的宽度。 上面的意思是没有地方可以告诉嵌套集合视图的单元格来改变它们的大小,因为我还不知道新的宽度。 自动布局系统不会自动调整它们。 其他人是否有同样的问题或知道解决scheme?

iPhone添加惯性/动量物理animation,像旋转控制一样为“命运之轮”创造动力

我试图创造出一种新型的旋转控制装置,它具有一个支撑在一个销上的真正巨大的轮子的外观和感觉,能够以一定程度的阻尼围绕它的中心点旋转,这最终会使轮子停下来。 想想“财富之轮”。 旋转控制样本项目 当使用本机UITableView和/或UIScrollView时,可以在一个方向上“轻弹”,并继续在该方向上滚动一段时间。 我知道用animation曲线可以达到类似的效果。 我感兴趣的是如何根据手指的距离/速度来计算界面元素应该滚动/旋转的距离。 不同types的“轻弹”会通过将“动力”转移到车轮上而产生不同的行为。 任何人都可以提出这种计算的例子? 我特别感兴趣的是将相同的惯性概念应用于自定义旋转控制,如下所述: 堆栈溢出的旋转控制 。 目前的例子,甚至在例子中提到的convertbot应用程序不使用惯性。 轮子简单地沿着手指并且卡扣到预定位置。 我想制作一个类似的车轮感,就像它有真正的质量,所以它可以轻弹,并将以可预见的方式旋转,直到平稳停止。 (认为​​“命运之轮”式显示)。 我怎样才能达到这种“命运之轮”惯性为基础的旋转控制行为,将使控制感觉像它真正的质量? 谢谢!

将转换应用于UITextView – 防止内容大小调整

当我将一个旋转变换应用到UITextView ,然后点击里面开始编辑时,内容大小似乎会自动变宽。 内容视图的新宽度是旋转的视图的边界框的宽度。 例如,给定一个宽度为500,高度为400,旋转30度的文本框,新的内容宽度为: (500 * cos(30)) + (400 * sin(30)) = 633 或以graphics方式: 有趣的是,如果您已经在编辑文本视图,然后应用转换,那么似乎没有对内容大小进行修改。 因此,在文本编辑开始的某个时候,文本视图会查看其frame属性,并根据帧宽度调整内容大小。 我想这个解决scheme是告诉它使用bounds属性,但是我不知道该怎么做,因为我不确定文本视图在哪里决定修改内容的大小。 我google了,但似乎无法find使用转换UITextViews的任何引用。 有没有人有这个想法? 编辑(testing项目中的button动作): – (IBAction)rotateButtonTapped:(id)sender { if (CGAffineTransformIsIdentity(self.textView.transform)) { self.textView.transform = CGAffineTransformMakeRotation(30.0 * M_PI / 180.0); } else { self.textView.transform = CGAffineTransformIdentity; } NSLog(@"contentsize: %.0f, %.0f", textView.contentSize.width, textView.contentSize.height); }

当我们开始旋转设备时,什么方法将被调用,并完成后

我想检测一个在编程上的iPad的旋转过程。 在这种情况下,我想设置一个布尔值为是,当旋转将开始,并将其设置为假旋转后结束。 有没有什么方法调用,当旋转将开始和旋转结束?