0
UIScrollView
에 줄자를 만들고 있는데, 이미지의 가로줄이 있고 프로그램으로 숫자를 추가하고 싶습니다.UIScrollView에 텍스트 추가
내가이 시도 (파란색 참고 바로 레이아웃을 얻는 데 도움이되었다) : 작동
for (NSInteger i = 0; i < self.maxUnits.integerValue; i++) {
static CGFloat labelWidth = 40;
CGFloat x = (halfScreen - (labelWidth/2)) + (i * self.widthOfOneFraction.floatValue * self.numberOfFractions.floatValue);
CGRect frame = CGRectMake(x-1, 41, labelWidth, 70);
UILabel *label = [[UILabel alloc] initWithFrame:frame];
label.text = [NSString stringWithFormat:@"%d", i];
label.textAlignment = NSTextAlignmentCenter;
label.textColor = [UIColor tlbBlueColor];
label.font = [UIFont fontWithName:@"HelveticaNeue-Light" size:20.0];
[self addSubview:label];
}
을하지만, RAM의를 40Mb에 대해 사용합니다. 나는 CATextLayer에 텍스트를 추가하는 것이 더 효율적이 될 수 있다는 생각,하지만 난 그것을 작동 얻을 수 없습니다
for (NSInteger i = 0; i < self.maxUnits.integerValue; i++) {
CATextLayer *label = [[CATextLayer alloc] init];
[label setFont:@"HelveticaNeue-Light"];
[label setFontSize:20];
[label setFrame:frame];
[label setString:[NSString stringWithFormat:@"%d", i]];
[label setAlignmentMode:kCAAlignmentCenter];
[label setForegroundColor:[[UIColor whiteColor] CGColor]];
[self.layer addSublayer:label];
}
숫자가 화면에 표시되지 않습니다.
제 질문은 제가 첫 번째 방법을보다 효율적으로 만들 수 있고, 그렇지 않을 경우 두 번째 방법이 효과적 일 때 더 효율적으로 사용할 수 있습니까? 그렇다면 어떻게 작동시킬 수 있습니까?
구현을 일반 표보기와 같이 일반화 할 수 있기를 바랍니다. 무작위 적으로 화면을 스크롤 할 때 해당 숫자를 다시 한 번보기 계층 구조에 강제로 쉽게 다시 사용할 수 있습니다. – CodaFi
나는 단지 실제로 화면의 너비의 3 배를 말하고 그 다음 다시 쓸어 버리는 것에 대해 궁금해했다. 그러나 정말로 빠르게 스크롤 할 수 있으면 성능이 저하 될 수있다. – Lewis42