1

に静的な固定画像を追加しようとしてUITableViewControllerいますが、標準を実行すると[self.view addSubview:imageView];、画像がテーブルビューに配置され、スクロールとともに移動します。

画像が固定されたままになるようにこれを行う方法はありますか? を作成してからとUIViewControllerを追加する方法があることはわかっていますが、残念ながら、カスタム(必要なことを実行するために見つかったライブラリのみ) を使用しているため、コントローラー.UIImageViewUITableViewUITableViewControllergihubUITableViewController

これを行う方法はありますか?私は運が悪いので、しばらくこれに取り組んできました。

乾杯、ブレット

4

5 に答える 5

2

UIViewControllerアイデアの使用には問題ありません。2 つUIViewControllerUIImageViewビューコントローラーを保持するだけUITableViewControllerです。必要に応じて、UITableViewControllerの強い参照を作成しUIViewControllerます。

私はいつも似たようなことをしてきました。

于 2012-05-18T13:31:30.760 に答える
0

UITableViewControllerはまったく使用しないでください(私はUITableViewControllerを使用したことはなく、ほとんどすべての開発者が使用していると聞いています)。それを使ってデザインをカスタマイズしたいときは悪夢です。

UIViewController(MYTableViewController)の独自のサブクラスを作成し、UITableView * tableViewインスタンス@propertyを追加して、@synthetizeします。

@interface MYTableViewController : UIViewController <UITableViewDelegate,UITableViewDataSource> {

    UITableView *tableView;


}
@property (nonatomic, retain) IBOutlet UITableView *tableView;

@end

次に、実装でそれをビューに追加します(XIBまたはviewDidLoadメソッドを使用)。

@implementation MYTableViewController
@synthesize  tableView;

// If not XIB used:
-(void)viewDidLoad{

[super viewDidLoad];

CGRect frame = self.view.bounds;
self.tableView = [[[UITableView alloc] initWithFrame:frame style:UITableViewStylePlain] autorelease];

tableView.dataSource = self;
tableView.delegate = self;
[self.view addSubview:tableView];

// And here you van add your image:
[self.view addSubview:imageView];


}



// Do not forget to release it and clear delegate and datasourcce when view uloads:

 #pragma mark - Memory management:

 -(void)dealloc{


    self.tableView.delegate = nil;
    self.tableView.dataSource = nil;
    self.tableView = nil;


    [super dealloc];
}
- (void)didReceiveMemoryWarning {

    self.tableView.delegate = nil;
    self.tableView.dataSource = nil;
    self.tableView = nil;


    [super didReceiveMemoryWarning];
}
-(void)viewDidUnload{

    self.tableView.delegate = nil;
    self.tableView.dataSource = nil;
    self.tableView = nil;


    [super viewDidUnload];
    }

@end
于 2012-05-18T13:25:59.830 に答える
0

https://stackoverflow.com/a/6961973/127493が言うように、UITableViewControllers は単純な UIViewControllers に置き換えることができます。

実際、トリックは、UITableView を UIViewController に追加し、デリゲートなどにして、UIViewController.view に追加することです。

したがって、いくつかの「姉妹」ビューをコントローラーのメイン ビューに追加できます。

于 2012-05-18T13:35:58.373 に答える
0

私の場合、画像(実際には画像付きのボタン)を追加しています。ユーザーが画像に触れると、画像が消えてテーブルビューが表示されます。

だから私は最初にスクロールを無効にしてから有効に戻しています

以下のコードを見つけます

// in viewDidLoad
[self.view addSubview:imgview];
tbl.scrollEnabled = NO;

// in -(IBAction)btnClicked:(id)sender
[imgview removeFromSuperview];
tbl.scrollEnabled = YES;

それは私のために働いています。

于 2012-05-18T13:36:07.890 に答える
0

はい、いくつかの方法があります。プログラムでビュー階層を作成する viewDidLoadか、NIB ファイルを使用することができます。デリゲートとビュー プロパティを正しくリンクしていることを確認してください。

initWithNibName:bundle: メソッド (スーパークラス UIViewController によって宣言される) を介して nib ファイルが指定されている場合、UITableViewController は、nib ファイルにアーカイブされているテーブル ビューをロードします。それ以外の場合は、正しいサイズと自動サイズ変更マスクを使用して、未構成の UITableView オブジェクトを作成します。tableView プロパティを介してこのビューにアクセスできます。テーブル ビューを含む nib ファイルがロードされると、データ ソースとデリゲートは nib ファイルで定義されたオブジェクトになります (存在する場合)。nib ファイルが指定されていない場合、または nib ファイルがデータ ソースまたはデリゲートを定義していない場合、UITableViewController はデータ ソースとテーブル ビューのデリゲートを self に設定します。

于 2012-05-18T13:35:15.347 に答える