아주 실 용적 인 iOS 팁 10 가지

8221 단어 iOS기교.
개발 과정 에서 우 리 는 항상 각양각색의 작은 문제 에 부 딪 히 는데,어떤 작은 문 제 는 결코 쉽게 해결 되 지 않 는 다.여기 서 제 가 개발 과정 에서 만난 여러 가지 작은 문제 와 제 해결 방법 을 정리 하 겠 습 니 다.비교적 보편적 인 나 는 더 이상 말 하지 않 겠 다.여 기 는 주로 네가 모 를 수도 있다 는 것 을 말한다.
1.컨트롤 의 부분 원 각 문제
당신 도 이런 문제 에 부 딪 힌 적 이 있 습 니까?button 이나 label,오른쪽 에 있 는 두 개의 뿔 만 있 거나 한 개의 뿔 만 있 으 면 됩 니 다.어 떡 하지?이것 은 바로 도 층 몽 판이 우 리 를 도와 야 한다.

CGRect rect = CGRectMake(0, 0, 100, 50); 
  CGSize radio = CGSizeMake(5, 5);//     
  UIRectCorner corner = UIRectCornerTopLeft|UIRectCornerTopRight;//       
  UIBezierPath *path = [UIBezierPath bezierPathWithRoundedRect:rect byRoundingCorners:corner cornerRadii:radio]; 
  CAShapeLayer *masklayer = [[CAShapeLayer alloc]init];//  shapelayer 
  masklayer.frame = button.bounds; 
  masklayer.path = path.CGPath;//     
  button.layer.mask = masklayer; 
예 를 들 어 button,UIView 에서 계승 하 는 다른 컨트롤 도 가능 합 니 다.
2.navigationBar 의 투명 문제
navigation Bar 의 알파 만 0 으로 설정 하면 navigation Bar 를 숨 긴 셈 입 니 다.부모 보기 의 알파 가 0 으로 설정 되면 하위 보기 가 모두 투명 하 다 는 것 을 잘 알 고 있 습 니 다.그러면 해당 네 비게 이 션 바 의 제목 과 좌우 두 버튼 이 모두 사라 집 니 다.이렇게 하면 분명히 우리 가 요구 하 는 효과 에 이 르 지 못 한다.
(1)navigation Bar 만 투명 하 게 하려 면 버튼 과 제목 이 다음 과 같은 방법 을 사용 할 수 있 습 니 다.

[self.navigationController.navigationBar setBackgroundImage:[UIImage new] 
forBarMetrics:UIBarMetricsDefault];

// navigationBar                ,        
세심 한 당신 은 위 에 아래 그림 과 같은 선 이 있 는 것 을 발견 할 수 있 습 니 다.

이것 은 우리 가 진일보 한 처 리 를 하고 실 을 제거 해 야 한다.다음 과 같은 방법 으로 하면 된다.

self.navigationController.navigationBar.shadowImage = [UIImage new]; 
 //       image   。      

(2)만약 에 투명 한 기초 위 에서 드 롭 다운 거리 에 따라 투명 에서 불투명 해 지 는 효 과 를 실현 하려 면 위 에 있 는 것 이 힘 에 부 치 는 것 같 습 니 다.그러면 우리 가 다른 방법 을 사용 해 야 합 니 다.

//navigationBar       ,           ,               
[[self.navigationController.navigationBar subviews] objectAtIndex:0].alpha = 0;

//      scrollView       alpha            
3.navigationBar 제목 의 스타일 과 barItem 제목 스타일 을 전역 적 으로 설정 합 니 다.

//UIColorWithHexRGB( )          ,             
[[UINavigationBar appearance] setBarTintColor:UIColorWithHexRGB(0xfefefe)]; 
 
  [[UINavigationBar appearance] setTitleTextAttributes:@{NSFontAttributeName:[UIFontboldSystemFontOfSize:18],NSForegroundColorAttributeName:UIColorWithHexRGB(0xfe6d27)}]; 
 
 
  [[UITabBarItem appearance] setTitleTextAttributes:@{NSFontAttributeName : [UIFontboldSystemFontOfSize:10],NSForegroundColorAttributeName : UIColorWithHexRGB(0x666666)}forState:UIControlStateNormal]; 
 
 
 [[UITabBarItem appearance] setTitleTextAttributes:@{NSFontAttributeName : [UIFont boldSystemFontOfSiz 
4.navigationBar 숨 기기 디 스 플레이 의 과도 함
사용 중 에 분명히 만 났 을 거 라 고 믿 습 니 다.한 페이지 는 navigationBar 를 숨 기 고 다른 하 나 는 숨 기지 않 습 니 다.두 페이지 가 push 와 pop 을 진행 할 때,특히 사 이 드 슬라이딩 제스처 가 되 돌아 올 때 처리 하지 않 으 면 미끄럼 이 되 돌아 올 때 navigationBar 위치 가 비어 검은색 을 직접 표시 하거나 아래 보 기 를 표시 하면 보기 흉 합 니 다.이것 은 navigationBar 를 숨 기거 나 표시 하기 위해 과도 한 애니메이션 을 추가 해 야 합 니 다.
돌아 온 후에 나타 날 페이지 를 view WillAppear 방법 으로 만 듭 니 다.숨 기 려 면 YES 로 설정 하고 표시 하려 면 NO 로 설정 합 니 다.

- (void)viewWillAppear:(BOOL)animated{ 
 
  [super viewWillAppear:animated]; 
 
  [self.navigationController setNavigationBarHidden:NO animated:YES]; 
 
} 
5.사 이 드 스 케 이 트 제스처 되 돌리 기
iOS 의 사 이 드 스 케 이 트 리 턴 제스처 는 좋 은 조작 체험 을 가지 고 있 으 며,사 이 드 스 케 이 트 리 턴 을 지원 하지 않 는 애플 리 케 이 션 은 절대 좋 은 애플 리 케 이 션 이 아니다.그러나 개발 과정 에서 리 턴 단 추 를 사용자 정의 하거나 일부 webView,table View 등 페이지 에서 옆으로 미 끄 러 지 는 제스처 가 효력 을 잃 었 습 니 다.이 럴 때 우리 가 설정 해 야 합 니 다.기본 클래스 에서 다음 과 같은 코드 를 협상 할 수 있 습 니 다.

if ([self.navigationController respondsToSelector:@selector(interactivePopGestureRecognizer)]) { 
//               

self.navigationController.interactivePopGestureRecognizer.delegate = self; 
 
    self.navigationController.interactivePopGestureRecognizer.enabled = YES; 
 
  } 

문제:navigationController 의 맨 위 에 있 는 Controller 로 돌아 갈 때.다시 옆으로 미 끄 러 집 니 다.이때 push 페이지 를 클릭 하면 카드 나 를 발견 하고 반나절 이 지나 야 반응 할 수 있 습 니 다.
최상 위 컨트롤 러 의 제스처 는 여전히 유효 하지만 미 끄 러 진 후 돌아 오 는 페이지 를 찾 지 못 하기 때문이다.소프트웨어 가 멈 추고 가사 하기 때문에 루트 뷰 컨트롤 러 에서 이 제스처 를 무효 로 해 야 합 니 다.아래 것 을 NO 로 설정 합 니 다.
self.navigationController.interactivePopGestureRecognizer.enabled = YES;
물론 당신 도 제3자 라 이브 러 리 를 사용 할 수 있 습 니 다.아주 잘 썼 습 니 다.그 는 시스템 의 사 이 드 스 케 이 트 를 제스처 로 확대 하여 가장자리 에서 미 끄 러 지지 않 고 오른쪽으로 미 끄 러 지기 만 하면 돌아 올 수 있다.가장 중요 한 것 은 그 가 프로젝트 에 가입 하기 만 하면 되 고 코드 한 줄 없 이 이 루어 질 수 있다 는 것 이다.github 주소 첨부
https://github.com/forkingdog/FDFullscreenPopGesture
6.webView 에 머리 보기 추가
웹 뷰 는 scrollView 를 포함 하 는 복합 보기 입 니 다.scrollView 에는 UIWebBrowserView 가 들 어 있 습 니 다.(웹 뷰 를 표시 하 는 내용 을 담당 합 니 다)

UIView *webBrowserView = self.webView.scrollView.subviews[0];//  webView webBrowserView 
  self.backHeadImageView = [[UIImageView alloc]initWithFrame:CGRectMake(0, 0, kScreenWidth,kScreenWidth*2/3.0)]; 
  [_backHeadImageView sd_setImageWithURL:[NSURL URLWithString:self.imageUrl] placeholderImage:[UIImageimageNamed:@"placeholderImage"]]; 
  [self.webView insertSubview:_backHeadImageView belowSubview:self.webView.scrollView]; 
 
  // backHeadImageView   webView scrollView   
   CGRect frame = self.webBrowserView.frame; 
  frame.origin.y = CGRectGetMaxY(_backHeadImageView.frame); 
 
  self.webBrowserView.frame = frame; 
 
  //  webBrowserView frame   backHeadImageView   ,     
7.모드 전환 애니메이션 설정
모드 점프 애니메이션 을 설정 하고 시스템 은 네 가지 선택 을 제공 합 니 다.

DetailViewController *detailVC = [[DetailViewController alloc]init]; 
  //UIModalTransitionStyleFlipHorizontal    
  //UIModalTransitionStyleCoverVertical      
  //UIModalTransitionStyleCrossDissolve    
  //UIModalTransitionStylePartialCurl    
  detailVC.modalTransitionStyle = UIModalTransitionStylePartialCurl; 
 
  [self presentViewController:detailVC animated:YES completion:nil]; 
8.이미지 처 리 는 이미지 의 일부분 만 받 을 수 있 습 니 다.

UIImage *image = [UIImage imageNamed:filename]; 
CGImageRef imageRef = image.CGImage; 
CGRect rect = CGRectMake(origin.x, origin.y ,size.width, size.height); 
//                 
 
//       400x400   (0,0,400,400)        ,                
 
CGImageRef imageRefRect = CGImageCreateWithImageInRect(imageRef, rect); 
 
UIImage *imageRect = [[UIImage alloc] initWithCGImage:imageRefRect]; 
9、UIView 에 그림 설정

UIImage *image = [UIImage imageNamed:@"playing"]; 
  _layerView.layer.contents = (__bridge id)image.CGImage; 
_layerView.layer.contentsCenter = CGRectMake(0.25, 0.25, 0.5, 0.5); 
//              
//        ,        0-1  ;       x,y,widt,height 
10.TableView 또는 Collection View 의 cell 에 간단 한 애니메이션 추가
willDisplayCell 방법 에서 표시 할 cell 에 대해 애니메이션 을 만 들 면 됩 니 다.

- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath*)indexPath{ 

  NSArray *array = tableView.indexPathsForVisibleRows; 
 
  NSIndexPath *firstIndexPath = array[0]; 
  //  anchorPoint 

  cell.layer.anchorPoint = CGPointMake(0, 0.5); 
   //    cell    ,   cell        
  cell.layer.position = CGPointMake(0, cell.layer.position.y);  
 
  //  cell   z   90 ,      
  if (firstIndexPath.row < indexPath.row) { 
       cell.layer.transform = CATransform3DMakeRotation(M_PI_2, 0, 0, 1.0); 
 
  }else{ 
 
    cell.layer.transform = CATransform3DMakeRotation(- M_PI_2, 0, 0, 1.0); 
 
  }
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기