1

私のiPadアプリケーションでは、

どういうわけか、ナビゲーションバーにタイトルとしてUILabelを追加するように管理しました。

ナビゲーションバーに追加している間、オフセットのために移動していることがわかります。

ここで「動く」とは、0.1秒の何分の1かのアニメーションを表示することを意味します。(いくつかのx、yからいくつかのx、yへのアクティビティの追加)

これが私のコードです、

-(void)addnavigationcomponents:(id)sender
{

if(titleLabel)
{
    [titleLabel release];
    titleLabel = [[CustomLabelA alloc] initWithFrame:CGRectMake(0,42,600,50) settag:1];
}

viewForLabel=[[UIView alloc] initWithFrame:CGRectMake(0,0,600,96)];
[titleLabel setFont:[UIFont fontWithName:@"TAHOMA" size:34.0f]];

[titleLabel setTextAlignment:UITextAlignmentCenter];

[viewForLabel addSubview:titleLabel];
self.navigationItem.titleView=viewForLabel;

titleLabel.text =calcname;

UIView *viewForButton=[[UIView alloc] initWithFrame:CGRectMake(0,0,71,96)];

}

viewWillAppear、次のコードを追加しました。

[self performSelector:@selector(addnavigationcomponents:) withObject:self afterDelay:0.00];

ラベルなどのコードをナビゲーションの背景の後ろに隠しているだけなので、セレクターを実行しました。どうすればよいでしょうか。

そのアニメーションを削除するにはどうすればよいですか。

4

1 に答える 1

1

ここで行う必要があることがいくつかあります。

  1. これを「viewWillAppear」で呼び出さないでください。このコードを「viewDidLoad」で実行する必要があります。

  2. 0.0 の遅延の後にセレクターを実行することは控えてください。これが機能する唯一の方法である場合は、この方法で行うべきではありません。

  3. ベスト プラクティスとして、「viewForLabel」にサブビューとして追加する前にテキストを設定します。

于 2012-07-16T13:26:24.290 に答える