Tag: 旋转

如何用单指旋转和调整图像视图

我正在开发一个应用程序,它具有通过拖动右下angularbutton来调整和旋转图像视图的function。 我看到一个应用程序有一个function,如果我们拖动右下angularbutton对angular图像视图大小已resize,否则,如果我们拖动button的左侧或右侧的方向imageview已按方向旋转。 我希望在我的应用程序中实现此function 我正在努力实现单指旋转以及调整imageview的大小。 我可以通过拖动它的右下angularbutton来成功实现调整图像视图的大小。 但我没有足够的知识将旋转添加到图像视图 请引导我正确的方式。 我已经添加了下面的代码,通过拖动它的右上angular来调整图像视图的大小。 – (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{ UITouch *touch = [[event allTouches] anyObject]; touchStart = [[touches anyObject] locationInView:imageView]; isResizingLR = (containerVw.bounds.size.width – touchStart.x < kResizeThumbSize && containerVw.bounds.size.height – touchStart.y < kResizeThumbSize); } – (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event{ CGPoint touchPoint = [[touches anyObject] locationInView:imageView]; CGPoint previous=[[touches anyObject]previousLocationInView:imageView]; UITouch *touch = […]

如何强制或禁用一些但不是所有的UIViewController的界面方向?

我有一个9-10屏幕的应用程序。 我embedded一个UINavigationController到我的视图控制器。 我有几个视图控制器,我只想设置纵向:这意味着旋转设备不应该将这些视图控制器旋转到横向模式。 我已经尝试了以下解决scheme: 第一: NSNumber *value = [NSNumber numberWithInt:UIInterfaceOrientationPortrait]; [[UIDevice currentDevice] setValue:value forKey:@"orientation"]; 但屏幕仍然旋转到风景。 第二:我创build了一个自定义的视图控制器类作为PortraitViewController并在下面的代码中添加了PortraitViewController.m @interface PortraitViewController () @end @implementation PortraitViewController – (BOOL)shouldAutorotate { return YES; } – (NSUInteger)supportedInterfaceOrientations { //Here check class name and then return type of orientation return UIInterfaceOrientationMaskPortrait; } @end 之后,我实现了PortraitViewController.h作为基类 #import <UIKit/UIKit.h> #import "PortraitViewController.h" @interface Login : PortraitViewController @end […]

如何在UINavigationController的单个视图上强制特定的UIInterfaceOrientation?

好的,情况如下: 我有一个应用程序,我只想在UINavigationController中有一个特定的视图具有横向。 这个视图是一个UIImageView,我正在捕获一个签名(这部分工作真棒)。 所以,像这样: previous view –> signature view –> next view (portrait) (landscape) (portrait) 我似乎无法find一种很好的方法来强制设备方向横向签名屏幕上。 在签名视图上使用纵向方向永远不会有意义,因为实际上没有足够的空间来签署该屏幕宽度。 那么,关于如何做到这一点的任何明智的想法? 我已经考虑可能做模式签名视图,从而打破了导航控制器。 思考?

围绕其中心旋转UIView保持其大小

我试图旋转一个UIView几个弧度,但应用转换后,它不看它保持其大小。 什么是实现这一目标的正确方法? 这是我正在做什么,我得到了什么(带有箭头的蓝色框是我试图旋转的视图 – 它应该保持与红色框相同的方面): #define DEGREES_TO_RADIANS(angle) ((angle) / 180.0 * M_PI) double rads = DEGREES_TO_RADIANS(240); CGAffineTransform transform = CGAffineTransformRotate(CGAffineTransformIdentity, rads); self.arrowView.transform = transform; 谢谢!

如何显示UIActivityIndi​​catorView之前的旋转开始

我想在willAnimateRotationToInterfaceOrientation进行的工作之前显示活动指示器:duration:开始。 大多数情况下,在我的应用程序中,这项工作很快完成,不需要任何活动指示器,但偶尔(第一次轮换,即在caching数据之前,处理大文件时)可能会出现明显的延迟。 而不是重新构build我的应用程序来应付这种罕见的情况下,我宁愿只显示UIActivityIndi​​catorView而应用程序生成caching并更新显示。 问题是(或者似乎是)在willRotateToInterfaceOrientation:duration和willAnimateRotationToInterfaceOrientation:duration:方法之间没有更新显示。 所以要求iOS在willRotate方法中显示UIActivityIndi​​cator视图直到在willAnimateRotation方法之后才会实际影响显示。 以下代码说明了这个问题。 运行时,活动指示器只会非常短暂地出现,并且在完成simulateHardWorkNeededToGetDisplayInShapeBeforeRotation方法之后。 我错过了什么明显的? 如果没有,我怎么能解决这个问题有什么聪明的想法? 更新 :虽然关于种植繁殖到另一个线程等的build议通常是有帮助的,在我的具体情况下,我有一些确实想要阻止主线程来做我的提升。 在应用程序中,我有一个tableView所有的高度需要重新计算。 当 – 这不是一个很常见的用例,或者我甚至不会考虑这种方法 – 有很多行,所有的新高度在[tableView reloadData]中计算(然后caching)。 如果农场的起飞,并让旋转继续,那么在旋转之后,提升之前,我的tableView没有被重新加载。 例如,在横向的情况下,它不占用全部的宽度。 当然,还有其他的解决方法,例如在旋转之前创build一个只有几行的tableView,然后重新加载真正的tableView。 示例代码来说明问题: @implementation ActivityIndicatorViewController @synthesize activityIndicatorView = _pgActivityIndicatorView; @synthesize label = _pgLabel; – (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { return (interfaceOrientation != UIInterfaceOrientationPortraitUpsideDown); } – (void) willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration; { NSLog(@"willRotate"); [self showActivityIndicatorView]; } – (void) willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration; { NSLog(@"willAnimateRotation"); […]

加载视图控制器后,应用程序运行缓慢,然后卸载大约15-20次

使用:Xcode 4.6故事板ARC模型inheritance到SecondViewController 我有一个应用程序,主要的ViewController加载一个新的veiwController时,设备旋转到右侧。 当应用程序启动时,一切都很好。 如果我旋转设备,然后回来卸载第二个视图控制器,约15-20倍的应用程序是非常长老。 我已经缩小了,它只发生在seconed视图控制器加载时,只有当我旋转设备的时间nunmber。 我也缩小了这是一个记忆问题。 我安装了一个应用程序,logging使用和可用的内存。 当我旋转设备多次时,我的记忆从400mb到900mb。 我正在尝试尽可能多地提供信息。 每个视图有8个NSTimers每秒钟触发。 有没有办法编程卸载视图,以确保被卸载? 我已经包含这个代码来确保加载和卸载: ` – (void)setView:(UIView *)aView {NSLog(@“>>> Entering%s <<<”, PRETTY_FUNCTION ); if (!aView) // view is being set to nil { NSLog(@"Should be unloading now"); } [super setView:aView]; NSLog(@"<<< Leaving %s >>>", __PRETTY_FUNCTION__); } 日志结果:2013-04-22 16:42:03.588 xxxxxxxx [xxxxxxx] >>>input – [GraphViewController setView:] <<< 2013-04-22 […]

强制旋转UIViewController

所以,我已经放弃了试图解决我一直在我的控制器将无需调用我的shouldAutorotateToInterfaceOrientation:方法的问题,因为每个人shouldAutorotateToInterfaceOrientation:这是一个iOS的bug。 现在我需要强制旋转我的UIViewController 。 有没有办法,我可以做到这一点,因为UIDevice实例方法已被删除,我不知道该怎么办强制旋转我的控制器。

iOS 7在标签栏中旋转视图时,视图的右侧不可点击

我有一个非常简单的应用程序组成的一个单一的看法。 一切工作正常,应用程序旋转,屏幕右侧的button可点击。 我正在使用iOS 7和Xcode 5。 如果进入故事板并select视图,请执行编辑器>embedded>选项卡栏控制器,现在当应用程序从纵向旋转到横向时,应用程序的右侧不可点击。 它似乎是从左侧停止工作正好是768像素,所以它让我觉得应用程序中有东西没有旋转。 什么可能是错的? 这只是一个基本的单一视图向导应用程序,我把一些用户界面元素,以testing。 唯一让它停止工作的是embedded到标签栏中。 这是整个项目: https : //github.com/tomkincaid/rotate 更新:我最初为iPhone和iPad使用相同的iPhone故事板,并认为这可能是问题。 不过,我创造了一个新的iPad故事板,它有同样的问题。 另一个更新:如果我把视图里面的导航控制器,它的工作原理。 所以查看工程和标签>导航>查看工程,但标签>查看不起作用。

iOS:如何在设备旋转后运行一个函数(Swift)

我有一个没有使用自动布局的UIView,有些组件是根据主视图中X和Y坐标的百分比来显示的。 以前我会运行一个函数来更新他们在didRotateFromInterfaceOrientation中的位置,但是我发现现在在iOS8中已经弃用了它。 我已经看过viewWillTransitionToSize,但它给出了奇怪的结果,并没有看起来是一个viewDidtransitionToSize函数。 有一个简单的方法(在Swift中)在设备旋转后运行一个函数吗?

以有限的旋转速度触摸旋转精灵

我试图让我的精灵节点旋转手指触摸。 到目前为止,我可以做到这一点,但我想要的是,我的节点有一个“旋转速度”。 所以我计算angular度的长度,然后设置一个不同的时间来旋转它(如果弧长,这将需要时间…)。 这是我的代码: override func touchesMoved(touches: NSSet, withEvent event: UIEvent) { _isTouched = true for touch in touches { let location:CGVector = touch.locationInNode(self) – miner.position miner.weaponRotation = location.angle() – CGFloat(M_PI_2) } } var wantedRotation: CGFloat { get { return _wantedRotation } set(rotation) { if rotation > CGFloat(M_PI) || rotation < -CGFloat(M_PI) { _wantedRotation = […]