タイトルテキストを左揃えにして改行するボタンがいくつかあります。
アプリを実行すると、テキストがフォーマットされていないところから遅延が発生します。
フォーマット済みテキスト http://imageshack.us/a/img28/1958/preformat.jpg
位置合わせと折り返しが有効になるまで:
フォーマット後のテキスト http://imageshack.us/a/img821/6118/postformat.jpg
シミュレーターでは、遅延はかなり目立ちます (~ 1 秒)。私の仲間の iPhone 5 では、遅延ははるかに小さいですが、それでも目立ちます。
この遅延の原因は何ですか? この遅延を回避できますか?
前もって感謝します!
EDIT
私の viewDidLoad メソッドでは、10 個のボタンを作成します。
for (int i = 1; i <= STEP_NUMBER; ++i)
[self createStepButtion:i isIphone:isIphone isRetina:isRetina];
createStepButton では、関連するコードは次のとおりです。
UIButton * b = [UIButton buttonWithType:UIButtonTypeCustom];
// Listener
[b addTarget:self action:@selector(goToStep:) forControlEvents:UIControlEventTouchUpInside];
[self.scrollView addSubview:b];
// Set button size.
CGFloat width = self.scrollView.frame.size.width;
// CGRectMake(x, y, width, height)
int y = stepNum * margin + (stepNum - 1) * buttonHeight;
int buttonWidth = width - margin * 2;
b.frame = CGRectMake(margin, y, buttonWidth, buttonHeight);
b.layer.cornerRadius = cornerRadius;
b.clipsToBounds = YES;
b.showsTouchWhenHighlighted = YES;
// Image
[b setImage:img forState:UIControlStateNormal];
b.imageEdgeInsets = [self makeImageInsets:buttonWidth];
// Text
[b setTitleEdgeInsets:UIEdgeInsetsMake(0, titleLeftMargin, 0, titleRightMargin)];
b.contentHorizontalAlignment = UIControlContentHorizontalAlignmentLeft;
b.titleLabel.lineBreakMode = UILineBreakModeWordWrap;
[b setTitle:[NSString stringWithFormat:@"%i - %s", stepNum, STEP_NAMES[stepNum - 1]]forState:UIControlStateNormal];
[b setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
b.titleLabel.font = [UIFont systemFontOfSize:fontSize];
// Background
[b setBackgroundColor:[UIColor whiteColor]];
// The step number this button represents.
b.tag = stepNum;