간단하게 A에서 z까지 문자열 결합 속도 테스트.. 약 60번 append 메소드가 실행된다.

NSString의 stringByAppending~~과 NSMutableString의 append를 비교했다. NSString은 매번 객체를 생성하는 방식이므로 느릴것이다~라고 예상.

-(void)testAppend1 {

NSString *result = @"";

NSTimeInterval start = [NSDate timeIntervalSinceReferenceDate];

for (char c = 'A' ; c <= 'z'; c++) {

result = [result stringByAppendingFormat:@"%c", c];

}

NSLog(@"Result of NSString with stringByAppendingFormate : time : %f", [NSDate timeIntervalSinceReferenceDate] - start);

}


-(void)testAppend2 {

NSMutableString *result = [NSMutableString string];

NSTimeInterval start = [NSDate timeIntervalSinceReferenceDate];

for (char c = 'A' ; c <= 'z'; c++) {

[result appendFormat:@"%c", c];

}

NSLog(@"Result of NSMutable with append method : time : %f", [NSDate timeIntervalSinceReferenceDate] - start);

}


기기에서 돌린 결과, NSMutableString을 이용한 방식이 약 20배 이상 빠르다.

매번 결과가 달라지긴 하다만..

Result of NSString with stringByAppendingFormate : time : 0.011139

Result of NSMutable with append method : time : 0.000614






반응형
보통 Tint를 이용해서 UI 컴포넌트의 색상을 변경할 수 있지만 TabBar에는 도통 색상을 변경하는 방법이 보이지 않는다.

Interface Builder에서 Tint 설정



TabBar의 색상을 변경하는 방법을 찾아봤으니.. 아래의 왼쪽은 기본적인 TabBar의 모습이고 오른쪽은 색상을 입힌 TabBar의 모습니다.




아이디어는 간단하다.
UITabBarController는 UIViewController의 일종이며, UIViewController가 최소 하나의 UIView와 연결되어 있듯이 UITabBarController도 UITabBar라는 UIView와 연결되어 있다. UITabBar에 색을 입힌 View를 추가하면 된다.

아래와 같은 코드면 위의 예제와 같은 효과를 얻을 수 있다.
UIView *v = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 480, 49)];
v.backgroundColor = [UIColor colorWithRed:0.6 green:0.2 blue:0.2 alpha:0.6];
[[tabBarController tabBar] insertSubview:v atIndex:0];


반응형

+ Recent posts