setNeedsDisplay に問題があります。私は、Interface Builder で作成された、多くのサブ UIView を持つ UIView を持っています。IBAction のボタンもあります。この IBAction では、すべての UIView (または、UILabel、UIWebView などのすべての UIElements..) を再描画/リロードしたいと考えています。
私はこれをやっていますが、私にはうまくいきません.理由はわかりません..:
//redraw the UIViews
[self.view_card_0 setNeedsDisplay];
[self.view_card_1 setNeedsDisplay];
[self.view_card_stapel setNeedsDisplay];
//other UI Elements
[self.webView_0 setNeedsDisplay];
[self.webView_1 setNeedsDisplay];
[self.webView_stapel setNeedsDisplay];
[self.lblCardTitle_0 setNeedsDisplay];
[self.lblCardTitle_1 setNeedsDisplay];
[self.lblCardTitle_stapel setNeedsDisplay];
[self.img_card_0 setNeedsDisplay];
[self.img_card_1 setNeedsDisplay];
[self.img_card_stapel setNeedsDisplay];
すべての UIElements/UIViews および Subviews を再描画/再読み込み/更新するにはどうすればよいですか?
編集1:
ビューをロードする方法:
detailViewController = [[DetailViewController alloc]
initWithNibName:@"DetailViewController_iPad" bundle:[NSBundle mainBundle]];
detailviewcontroller には、viewcontroller がなく、uiview だけがあり、ここに階層があります。
- UIView
-- UIViewContainer
--- UIView0
--- UIView1
--- UIViewStapel
私が期待していること:
* UIView をリセットしたくありません。背景とその内容を変更したいです。*
詳細ビューには多くのサブビュー (uiview) があります。上記の階層を参照してください。UIViews にコンテンツを表示しています。コンテンツは coreData から取得されます。
view1 には、coreData の現在の行が含まれています。
view0 には、coreData の前の行が含まれています。
viewStapel には、coreData の次の行が含まれています。
IBAction を使用して、coreData 行を反復処理し、アクションが呼び出された場合に現在の次の行を表示したい..など..
ログでは、データは変更されますが、UIViews には表示されません。この原因は、現在のデータを表示するために、再描画またはリロードなどが必要です。
EDIT 2:
解決済みコードを新しいメソッドに入れ、このメソッドを呼び出すと問題が解決しました。