iOS开发的一些奇巧淫技2

移动开发
iOS开发的一些奇巧淫技2,这个系列教你看了都说好!!

 iOS开发的一些奇巧淫技2

能不能只用一个pan手势来代替UISwipegesture的各个方向?

  1. - (void)pan:(UIPanGestureRecognizer *)sender 
  2.  
  3. typedef NS_ENUM(NSUInteger, UIPanGestureRecognizerDirection) { 
  4.     UIPanGestureRecognizerDirectionUndefined, 
  5.     UIPanGestureRecognizerDirectionUp, 
  6.     UIPanGestureRecognizerDirectionDown, 
  7.     UIPanGestureRecognizerDirectionLeft, 
  8.     UIPanGestureRecognizerDirectionRight 
  9. }; 
  10.  
  11. static UIPanGestureRecognizerDirection direction = UIPanGestureRecognizerDirectionUndefined; 
  12.  
  13. switch (sender.state) { 
  14.  
  15.     case UIGestureRecognizerStateBegan: { 
  16.  
  17.         if (direction == UIPanGestureRecognizerDirectionUndefined) { 
  18.  
  19.             CGPoint velocity = [sender velocityInView:recognizer.view]; 
  20.  
  21.             BOOL isVerticalGesture = fabs(velocity.y) > fabs(velocity.x); 
  22.  
  23.             if (isVerticalGesture) { 
  24.                 if (velocity.y > 0) { 
  25.                     direction = UIPanGestureRecognizerDirectionDown; 
  26.                 } else { 
  27.                     direction = UIPanGestureRecognizerDirectionUp; 
  28.                 } 
  29.             } 
  30.  
  31.             else { 
  32.                 if (velocity.x > 0) { 
  33.                     direction = UIPanGestureRecognizerDirectionRight; 
  34.                 } else { 
  35.                     direction = UIPanGestureRecognizerDirectionLeft; 
  36.                 } 
  37.             } 
  38.         } 
  39.  
  40.         break
  41.     } 
  42.  
  43.     case UIGestureRecognizerStateChanged: { 
  44.         switch (direction) { 
  45.             case UIPanGestureRecognizerDirectionUp: { 
  46.                 [self handleUpwardsGesture:sender]; 
  47.                 break
  48.             } 
  49.             case UIPanGestureRecognizerDirectionDown: { 
  50.                 [self handleDownwardsGesture:sender]; 
  51.                 break
  52.             } 
  53.             case UIPanGestureRecognizerDirectionLeft: { 
  54.                 [self handleLeftGesture:sender]; 
  55.                 break
  56.             } 
  57.             case UIPanGestureRecognizerDirectionRight: { 
  58.                 [self handleRightGesture:sender]; 
  59.                 break
  60.             } 
  61.             default: { 
  62.                 break
  63.             } 
  64.         } 
  65.         break
  66.     } 
  67.  
  68.     case UIGestureRecognizerStateEnded: { 
  69.         direction = UIPanGestureRecognizerDirectionUndefined;    
  70.         break
  71.     } 
  72.  
  73.     default
  74.         break
  75.  

拉伸图片的时候怎么才能让图片不变形?

  1. UIImage *image = [[UIImage imageNamed:@"xxx"] stretchableImageWithLeftCapWidth:10 topCapHeight:10];
    (刚才有人提醒这个已经deprecated了哈,现在的方法叫resizableImageWithCapInsets).

怎么播放GIF的时候这么卡,有没有好点的库?

FlipBoard出品的太适合你了。https://github.com/Flipboard/FLAnimatedImage

怎么一句话添加上拉刷新?

https://github.com/samvermette/SVPullToRefresh

  1. [tableView addPullToRefreshWithActionHandler:^{ 
  2. // prepend data to dataSource, insert cells at top of table view 
  3. // call [tableView.pullToRefreshView stopAnimating] when done 
  4. } position:SVPullToRefreshPositionBottom]; 

怎么把tableview里cell的小对勾的颜色改成别的颜色?

  1. _mTableView.tintColor = [UIColor redColor]; 

本来我的statusbar是lightcontent的,结果用UIImagePickerController会导致我的statusbar的样式变成黑色,怎么办?

  1. - (void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated 
  2.     [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent]; 

怎么把我的navigationbar弄成透明的而不是带模糊的效果?

  1. [self.navigationBar setBackgroundImage:[UIImage new
  2.                          forBarMetrics:UIBarMetricsDefault]; 
  3. self.navigationBar.shadowImage = [UIImage new]; 
  4. self.navigationBar.translucent = YES; 

怎么改变uitextfield placeholder的颜色和位置?

继承uitextfield,重写这个方法

  1. - (void) drawPlaceholderInRect:(CGRect)rect { 
  2.     [[UIColor blueColor] setFill]; 
  3.     [self.placeholder drawInRect:rect withFont:self.font lineBreakMode:UILineBreakModeTailTruncation alignment:self.textAlignment]; 

你为什么知道这么多奇怪的花招?

去stackoverflow刷问题啊,少年!

责任编辑:倪明 来源: 简书
相关推荐

2015-07-28 14:39:02

IOS技巧

2018-02-06 11:10:27

iOS开发Xcode快捷键

2018-02-04 22:29:21

iOS开发

2012-12-24 14:51:02

iOS

2014-05-13 09:55:13

iOS开发工具

2013-03-29 09:03:59

iOS实用小代码iOS开发

2013-12-03 10:30:28

iOS开发程序员自我提升

2021-06-08 06:13:16

React开发开发技术

2009-07-09 13:16:54

Java Swing开

2011-09-15 16:09:27

2017-02-21 13:36:11

iosAPP性能

2021-06-30 07:19:35

微服务业务MySQL

2015-08-27 11:16:14

ios开发技巧

2010-11-02 14:11:15

SilverlightWPF微软开发

2015-08-27 10:49:43

JavaScript开发框架

2015-11-23 10:16:12

2010-05-25 17:00:04

Java WebWeb容器Web应用

2017-05-02 21:08:35

开发架构工程师

2017-09-10 17:31:18

iOS渲染数据

2011-06-10 20:02:55

嵌入式开发
点赞
收藏

51CTO技术栈公众号