私がiPadアプリでページを切り替えると、次のコードを使用してページ番号を表示しています。この数字は、透明な灰色のペインに表示されるはずです(XCodeの "Build Succeeded"メッセージに似ています)。ただし、画像ビューは約5%の時間しか表示されません。 (まだペインに数字を入れるコードは追加していません)。毎回NSLog()
というメッセージが表示されます。私もブレークポイントを設定し、ステップを進めて、UIImageView
コードが呼び出されています。残念ながら、私はそれが何をしているのかを見るためにフレームワークに入ることができません。UIImageViewは断続的にしか表示されません。
使用される変数はすべて地域や定数ですので、競合条件とは関係ありません。また、クリック数分待ってから画像を取得したり、ボタンを素早く押して複数の画像を重ねて表示することもできます(透明なのでスタックに気づくのは簡単です)。
私は(私はaddSubview:
はそれをしないかなり確信しているにもかかわらず)addSubview:
後self.view
にsetNeedsDisplay
を実行しようとしたが、それは何もしませんでした。
displayPageNumber:
をスレッドしないで直接呼び出しても、一貫して表示されません。
アイデア?
#define PageDisplayTime 0.5
#define PageDisplayImageName @"PageIndicator.png"
#define PageDisplayImage [UIImage imageNamed: PageDisplayImageName]
...
[NSThread detachNewThreadSelector: @selector(displayPageNumber:)
toTarget: self withObject: index];
...
- (void) displayPageNumber: (NSNumber*) _pageIndex
{
NSLog(@"Page Number: '%d'.", [_pageIndex integerValue] + 1);
NSAutoreleasePool* pool = [[NSAutoreleasePool alloc] init];
UIImageView* glassPaneView = [[UIImageView alloc] initWithImage: PageDisplayImage];
glassPaneView.center = CGPointMake(300.0, 300.0);
[self.view addSubview: glassPaneView];
[NSThread sleepForTimeInterval: PageDisplayTime];
[glassPaneView removeFromSuperview];
[glassPaneView release];
[pool release];
}
私は 'self.view'に永久的に存在するクラスメンバーを' UIImageView'にして、 'hidden'プロパティを切り替えてペインを表示し、同じ問題を抱えました。 – Jason