18 - UIKit (코어 애니메이션, 방송 디자인 모델)
9314 단어 animation
1. 핵심 애니메이션
2. 방송 디자인 모델
정상 으로 돌아가다
1. 핵심 애니메이션
1. 뭐 예요?
기본 애니메이션 프레임 워 크
2. 프레임 대비
UIKit UI UIView AppKit NS NSView
(Cocoa Touch = UIKit + Foundation) (Cocoa = AppKit + Foundation)
핵심: 예 쁘 고 움 직 일 수 있 는 것 을 휴대 전화 에서 사용자 와 상호작용 할 수 있 도록 한다.
OC 레벨:
+ UIControl / UIView 하위 클래스
+ UITableView/UICollectionView
+ UIGestureRecognizer / UIView touch
Core Animation CA CALayer
(Quartz Core)
핵심: 그 려 진 것 을 더 예 쁘 게 만 들 거나 움 직 이게 한다.
C 레벨:
UIKit OC 레벨 의 간소화 클래스
+ UIView transform
+ UIView animate...
+ autoresizing
+ autolayout
Core Graphic CG CGContextRef
(Quartz 2D)
핵심: 그리 기
C 단계: 선, 채 우기 색상, 텍스트, 그림자, 이미지
UIKit OC 레벨 의 간소화 클래스
+ UIColor
+ UIBezierPath
+ NSString(UIKit)
3. UIView vs CALayer
UIKit Core Animation
UIView CALayer
-> view.layer
addSubview addSublayer
frame frame
autoreszing autoreszing
transform 2D transform 3D
animate 애니메이션 3D 애니메이션 색상 애니메이션
원 각 변 추가
그림자 추가
입자 효과
4. Layer
1) 원 각 설정
2) 가리개
3) CATransform3D
내부 4x4 매트릭스
- (void)viewDidLoad
{
[super viewDidLoad];
self.imageView.layer.cornerRadius = 15;//
self.imageView.layer.masksToBounds = YES;// /
CATransform3D transform = CATransform3DIdentity;
transform.m34 = - 1.0 / 1000;
transform = CATransform3DRotate(transform, M_PI_4, 1, 1, 0);//x 45 ,x 45 x y z
self.imageView.layer.transform = transform;
}
정상 으로 돌아가다
2. 방송 디자인 모델
개념:
0. 생활 속 의 방송, 텔레비전 생방송, 라디오, 백화점, 웨 이 보
1. 방송 디자인 모델 은 무엇 입 니까?한 대상 이 메시지 의 수신 자가 누구 인지 알 지 않 아 도 메시지 가 필요 한 대상 에 게 메 시 지 를 보 낼 수 있다.
2. 왜 이런 패턴 이 있 을 까?
1 > 일부 경우 메 시 지 를 보 낸 발송 자 는 수신 자의 존재 와 수량 을 예측 할 수 없다.
2 > 어떤 경우 에는 메시지 의 수신 자 와 발송 자의 거리 가 너무 멀다.
3. 핵심 논리, 발송 자, 청취 자
1 > 청취자, 라디오 켜 기, 라디오 듣 기, 미래 송신 자 채널 과 일치 하도록 주파수 변조
2 > 발송 자 는 라디오 를 켜 서 현재 채널 을 들 은 사람 이 라면 모두 라디오 를 들 을 수 있 는 라디오 를 보낸다.
3 > 청취자 방송 종료
4. ios 에서 방송 에 대한 실현
NSNotification 통지
NSNotificationCenter 알림 센터
STEP: [MX2]
1. 청취 자 는 라디오 를 켜 고 라디오 를 듣는다
1 > 알림 센터 찾기
NSNotifecationCenter * center = NSNotifecationCenter defaultCenter
2 > 특정한 테 마 를 듣 는 라디오 addObeserver 를 등록 합 니 다.
2. 발생 자 방송
1 > 알림 센터 찾기
2 > 알림 대상 생 성
3 > 알림 센터 로 알림 대상 post 보 내기
-(void)kaishi{
//
NSNotificationCenter *center = [NSNotificationCenter defaultCenter];
//
NSNotification *nofication = [NSNotification notificationWithName:@"WWDC" object:nil];
//
[center postNotification:nofication];
}
3. 청취자 처리
1 > 소식 듣 기, 처리 논리 실현
4. 라디오 를 끄 고, 듣 는 사람 이 필요 없 을 때 듣 기 를 멈춘다 (반드시 꺼 야 한다)
1 > 알림 센터 찾기
2 > remove 듣 기 중지
-(id)init{
self = [super init];
if (self) {
//
NSNotificationCenter *center = [NSNotificationCenter defaultCenter];
//
[center addObserver:self selector:@selector(jieshou:) name:@"WWDC" object:nil];
}
return self;
}
//
-(void)jieshou:(id)sender{
NSLog(@"jieshoudaole");
}
//
-(void)dealloc{
NSNotificationCenter *center = [NSNotificationCenter defaultCenter];
[center removeObserver:self name:@"WWDC" object:nil];
}
5. 알림 센터 에서 정 보 를 발표 할 때 데이터 전송
//
NSDictionary *data = @{@"Product": @"iPad Air"};
NSNotification *nofication = [NSNotification notificationWithName:@"WWDC" object:nil userInfo:data];
//
-(void)jieshou:(NSNotification *)sender{
NSLog(@"%@",sender.userInfo[@"Product"]);
}
6. 내부 메커니즘
[G01]
7. 방송 과 동시에 데이터 전송
라디오 를 보 낼 때 데 이 터 는 알림 대상 의 userInfo 아래 에 놓 습 니 다.
라디오 를 받 을 때 첫 번 째 인 자 는 CCTV 가 아니 라 뉴스 (NSNotification) 입 니 다.
받 은 첫 번 째 매개 변 수 는 발송 자가 만 든 알림 대상 입 니 다.
8. 문자열 상수
.h
extern NSString * const XXXxxxXxxxxxxxx;
.m
NSString * const XXXxxxXxxxxxxxx = @".....";
9. 효과.
메시지 수신 자의 증가
기 존 메시지 발송 자의 코드 에 영향 을 주지 않 습 니 다.
다른 기 존 수신 자의 코드 에 도 영향 을 주지 않 습 니 다.
10. 방송 을 켜 거나 끄 려 면 반드시 짝 을 맞 춰 야 한다.
init - dealloc
viewDidLoad - viewDidUnload / dealloc
viewWillAppear - viewDidDisappear
viewDidAppear - viewWillDisappear
네 번 째 검사 기 에서 VC 를 선택 하 십시오. 기본적으로 under top bars 를 선택 하면 이 VC 가 top bar 아래 에 침투 하고 취소 하면 침투 하지 않 는 다 는 뜻 입 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
How to make animation on scroll ?There have so many animation for icon scroll, but today we will do animation type arrow run down like animated last post...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.