ios 뽀개기/objective-c
NSTimer & label 속성 (가운데, 줄간격, 위치고정 등)
인생여희
2019. 10. 24. 14:39
반응형
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];
}
}];
}
반응형