我在UIScollView有两个视图。 第一个视图是普通视图,第二个视图是tableview。 我想启用滑动来删除表格中的一行,只要有人从右向左滑动。 如果有人从左向右滑动,您将看到第一个视图。 当UIScollView的UIScollView为NO时,只需滑动即可删除一行。 我不知道什么时候设置scrollenable否或是。 这甚至可能吗?
我正在使用PanGestureRecognizer,并在UIGestureRecognizerStateChanged我让屏幕上的视图被用户的手指移动。 我正在使用这样的Tinder类似滑动手势,现在我想限制视图的移动到水平轴或垂直轴,无论用户开始滑动什么方向。 我一直在寻找,但没有find适合的地方。 根据用户开始滑动视图的方向,是否有任何巧妙的方法来限制轴的移动? 谢谢一堆! 更新:这是当前移动视图的代码: – (void)dragged:(UIPanGestureRecognizer *)gestureRecognizer { CGFloat xDistance = [gestureRecognizer translationInView:self].x; CGFloat yDistance = [gestureRecognizer translationInView:self].y; // xDistance = 0; [parentView dragged:yDistance]; switch (gestureRecognizer.state) { case UIGestureRecognizerStateBegan:{ self.originalPoint = self.center; break; }; case UIGestureRecognizerStateChanged:{ CGFloat rotationAngel = 0; CGFloat scale = 1;//MAX(scaleStrength, 0.93); CGAffineTransform transform = CGAffineTransformMakeRotation(rotationAngel); CGAffineTransform scaleTransform = CGAffineTransformScale(transform, […]
我有一个UINavigationBar,截获后退button,提醒用户是否有更改。 这是基于在UINavigationController和UINavigationBarDelegate.ShouldPopItem()中使用UINavigationBarDelegate协议和实现- (BOOL)navigationBar:(UINavigationBar *)navigationBar shouldPopItem:(UINavigationItem *)item; 现在,iOS7已经引入了滑回手势,我也想拦截它,但无法使用到目前为止我find的解决scheme,即使用[self.interactivePopGestureRecognizer addTarget:self action:@selector(handlePopGesture:)]; 和 – (void)handlePopGesture:(UIGestureRecognizer *)gesture { if (gesture.state == UIGestureRecognizerStateEnded) { [self popViewControllerAnimated:NO]; } } 虽然这确实popup的意见,它留下的导航栏button,所以我结束了一个后退button,无处不在,以及我已经添加到导航栏的所有其他导航button。 有小费吗?
为了达到这么简单的目标,我被迫绝望了。 我有一个菜单的视图,使用touchEvents滑动从左侧滑动手势时,通过一个水平滑动。 我不使用手势识别器,我只是使用touchesBegan,touchesMoved等。并跟踪起始触摸位置,中间触摸位置和最终触摸位置之间的x坐标差。 它工作很好。 但是,当我有一个UITableView的身体,触摸事件不再findpipe理菜单的视图的层次结构。 我尝试通过触摸superview / nextResponder,哪些作品,但我看到touchesBegan和2 touchesMoved调用之前,它只是停止进一步处理层次结构。 具体来说,我有一个SlideMenuView,其中有一个菜单视图和一个正文视图。 在身体视图内部,我有一些UITableView。 我看到(通过NSLog)触摸*方法从头到尾调用就好了。 我将它们传递给nextResponder,并开始在SlideMenuView中看到它们 – 但是在2次调用touchesMoved之后,它们似乎停止在SlideMenuView中,但是继续在我的UITableView中。 我重写了UITableView来做到这一点,但我没有改变更多的内部。 我知道这一定是可能的,因为它是在Facebook应用程序。 你可以在身体的任何地方滑动,水平滚动,并显示菜单。 我希望在这里自然发生同样的事情,但似乎有些奇怪的事情发生,而UITableView正在消耗或摧毁事件。 有人能帮我解决吗? 有人必须以干净的方式达到这个目的。
我有一张照片,比如长方形的纸。 我想把它放在屏幕的中心,当用户用手指向左或向右滑动时(比方说左边),那张纸应该向左(用手指),并且从右边开始应该是新的纸上有一些新的信息。 我希望我的描述不会混淆。 我想这个function应该很容易做iOS SDK,我只是不知道该用什么… 谢谢你的帮助 ;)
我试图重现新的iOS谷歌地图应用程序的上滑菜单的行为。 所以基本上这是一个视图,你可以上下滑动到某个点,或者滑动到某个点。 此视图也可以像分页滚动视图一样向右和向左滑动。 它应该上下滚动或滑动到一边,但不是在同一时间。 经过大量的研究和testing,我得到的东西很接近,但并不像需要的那样工作。 我的实现是一个320×400的框架的UIScrollView和960×400分页滚动的内容视图。 然后我添加一个UIPanGestureRecognizer来处理整个视图的上移。 这是PanRecognizer的handleTouch IBAction: – (IBAction)handlePan:(UIPanGestureRecognizer *)sender { NSLog(@"Panning"); CGPoint translatedPoint = [(UIPanGestureRecognizer*)sender translationInView:self.view]; if([(UIPanGestureRecognizer*)sender state] == UIGestureRecognizerStateBegan) { _firstX = [[sender view] center].x; _firstY = [[sender view] center].y; } if (!IS_IPHONE_5) { if (_firstY < 216) translatedPoint = CGPointMake(_firstX, 216); else translatedPoint = CGPointMake(_firstX, _firstY+translatedPoint.y); } else { if […]
我正在开发一个应用程序,在左侧有一个“抽屉”将是非常有益的。 我正在做一些初步的testing,看看我是如何最好的完成这个,我有一些非常基本的麻烦。 我的设置 1.我在Xcode 4中使用单视图应用程序模板。 2.到xib的“main / border”视图中,我添加了2个UIViews(LeftPanel和RightPanel)和一个UIButton(ShowHideButton)。 3.我已将LeftPanel绿色和RightPanel蓝色着色,以便于查看。 4.加载视图时,两个面板均可见,并且UIButton具有“隐藏面板”文本。 5.按下button后,LeftPanel应滑出屏幕(向左),并且RightPanel应展开以占据其原始空间加上LeftPanel空出的空间。 6.此时,ShowHideButton应将其文本更改为“显示面板”。 7.再次按下button时,LeftPanel应该滑回到屏幕上(从左边),RightPanel应该收缩以将其原始空间“缩回”。 8.此时,ShowHideButton应将其文本更改回“隐藏面板”。 我正在使用animateWithDuration:animations:completion:实现animationanimateWithDuration:animations:completion: 。 到目前为止, closures屏幕的转换工作正常(实际上很好)。 令我感到困扰的是,当我尝试将LeftPanel“返回”时,我得到一个EXC_BAD_ACCESS。 我已经在下面发布了我的代码,我已经看过了,但是我确实无法看到正在发布的内容(或者导致EXC_BAD_ACCESS的任何内容)。 DrawerTestingViewController.h #import <UIKit/UIKit.h> typedef enum { kHidden, kShown } PanelState; @interface DrawerTestingViewController : UIViewController { PanelState currentState; UIButton *showHideButton; UIView *leftPanel; UIView *rightPanel; } @property (assign, nonatomic) PanelState CurrentState; @property (strong, nonatomic) IBOutlet UIButton *ShowHideButton; […]
我试图在swift中执行不同的tableViewControllers之间的滑动导航。 我设法与viewControllers与下面的代码: import UIKit class ViewController: UIViewController { @IBOutlet weak var scrollView: UIScrollView! override func viewDidLoad() { super.viewDidLoad() } var scrollViewAdded = false override func viewDidLayoutSubviews() { super.viewDidLayoutSubviews() if !scrollViewAdded { self.loadSrollView() self.scrollViewAdded = true } } func loadSrollView() { self.scrollView.pagingEnabled = true let vc0 = self.storyboard?.instantiateViewControllerWithIdentifier("ViewController0") self.addChildViewController(vc0!) self.scrollView.addSubview(vc0!.view) vc0!.didMoveToParentViewController(self) let vc1 = self.storyboard?.instantiateViewControllerWithIdentifier("ViewController1") var […]
通过文档查看,似乎新的高级手势API不能确定超出基本{左,右,上,下}的滑动方向。 我需要滑动的起点和方向。 有没有办法检索这个,而不是从头开始编写我自己的高级手势库了基本的手势? 如果这是我唯一的select,任何人都可以指向我的一些开源代码这样做?
我需要检测我的滑动手势的方向,我有问题。 手势正在工作,但我不知道如何检测方向。 … swipeGesture = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(detectSwipe:)]; [swipeGesture setNumberOfTouchesRequired:1]; [swipeGesture setDirection:UISwipeGestureRecognizerDirectionDown | UISwipeGestureRecognizerDirectionUp]; [appView addGestureRecognizer:swipeGesture]; -(void)detectSwipe:(UISwipeGestureRecognizer *)recognizer { switch (recognizer.direction) { case UISwipeGestureRecognizerDirectionUp: NSLog(@"smth1"); break; case UISwipeGestureRecognizerDirectionDown: NSLog(@"smth2"); default: break; } } 它不工作:/