반응형
30초 카운트 다운 타이머 만들기
(countdownlabel 객체는 storybord에 미리 만들어 놓는다.)
#import <UIKit/UIKit.h>
@interface SosRequestViewController : UIViewController
//타이머 객체
@property(strong,nonatomic) NSTimer *CountDownTimer;
@property (nonatomic, assign) NSInteger second;
@end
.m
//타이머 시작!
-(void)startTimer{
//폰트를 넣어줘야, lable 위치가 흔들리지 않는다.
UIFont *myfont = [UIFont monospacedDigitSystemFontOfSize:_countDownLabel.font.pointSize weight:UIFontWeightRegular];
//타임 인터벌 변수 초기화
_second = 30;
//타이머 시작 - 화면에 촬영시간 표시해주기
_CountDownTimer = [NSTimer scheduledTimerWithTimeInterval:1.0 repeats:YES block:^(NSTimer * _Nonnull timer) {
self->_second -= 1;
NSString *labelContent = [NSString stringWithFormat:@"미입력시 %0.2ld초 후 \n구조요청이 자동으로 발송 됩니다.", self->_second];
//줄간격 조정
NSMutableAttributedString *attributedString = [[NSMutableAttributedString alloc] initWithString:labelContent];
NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc] init];
//줄간격
[paragraphStyle setLineSpacing:12];
//가운데 정렬
[paragraphStyle setAlignment:NSTextAlignmentCenter];
//속성 셋팅
[attributedString addAttribute:NSParagraphStyleAttributeName value:paragraphStyle range:NSMakeRange(0, [labelContent length])];
//폰트를 넣어줘야 라벨 위치가 흔들리지 않는다.
self->_countDownLabel.font = myfont;
//라벨의 줄 라인 무한대로
[self->_countDownLabel setNumberOfLines:0];
self->_countDownLabel.attributedText = attributedString;
if(self->_second == 0){
//타이머 정지
[self->_CountDownTimer invalidate];
self->_CountDownTimer = nil;
//타이머 라벨 및 변수 초기화
self->_countDownLabel.text = [NSString stringWithFormat:@"미입력시 %0.2d초 후 \n구조요청이 자동으로 발송 됩니다.", 30];
//폰트를 넣어줘야 라벨 위치가 흔들리지 않는다.
self->_countDownLabel.font = myfont;
//라벨의 줄 라인 무한대로
[self->_countDownLabel setNumberOfLines:0];
self->_second = 30;
//자동으로 구조요청 sms 발송
//[_recordButton sendActionsForControlEvents:UIControlEventTouchUpInside];
}
}];
}
반응형
'ios 뽀개기 > objective-c' 카테고리의 다른 글
ios push 갱신 (262) | 2020.04.14 |
---|---|
NSNotification 예제 (자식창 닫을때 부모창도 같이 닫기) (130) | 2019.10.24 |
단순 팝업 메시지 (271) | 2019.10.24 |
ios 인디케이터 (268) | 2019.10.24 |
ios 디바이스 사이즈 구하기 & xib 파일 이름으로 뷰 띄우기 (280) | 2019.10.24 |
댓글