0

次のように、プログラムで UITableViewController にボタンを追加しています。

-(void)createFlipButton
{
    UIButton *button = [UIButton buttonWithType:UIButtonTypeInfoDark];
    button.frame = CGRectMake(282, 372, 18, 19);
    [button addTarget:self action:@selector(flipView) forControlEvents:UIControlEventTouchDown];
    [self.view addSubview:button];
    [self.view bringSubviewToFront:button];
}

しかし、button.frame スペースを占有するセルにスタックしています。なぜ 機能しないの[self.view bringSubviewToFront:button]ですか?

また、 [self.tableView bringSubviewToFront:button]どちらも機能しません。

4

5 に答える 5

1

あなたが本当に欲しいのはフローティングビュー、つまりテーブルビューがスクロールしても動かないビューだと思います。ボタンがセルに固定されているように見える理由は、テーブル全体がスクロールビューになっているため、コンテンツが移動するとボタンも移動します。

進む方法は、テーブルがスクロールするときに追加したビューの位置を調整することです。デリゲートメソッドを実装するだけです。

-(void)scrollViewDidScroll:(UIScrollView *)scrollView {
     CGPoint buttonOrigin = CGPointMake(200,50);
     self.button.frame = CGRectMake(buttonOrigin.x, buttonOrigin.y + self.tableView.bounds.origin.y, self.button.frame.size.width, self.button.frame.size.height);
}

ここでボタンにアクセスできるように、ボタンの参照を保存する必要があります。また、ボタンの場所をivarに入力することもできます。

WWDC 2011ビデオにアクセスできる場合は、セッション125でそのトリックを見つけることができます。

于 2012-09-30T16:15:34.937 に答える
0

透明な UIView を作成できます。ボタンをその UIView に追加し、その UIView をビュー階層に追加します。これは、あなたが求めたとおりに機能するはずです(ボタンはテーブルビューの一部ではありません)。サンプル コードに関するヘルプが必要な場合は、以下にコメントを入力してください。

于 2012-09-25T19:31:43.487 に答える
0

同じビューで Table View と他の UI アイテムを使用したいときはいつでも、UIViewController を使用します。このView ControllerはUITableViewDelegateとUITableViewDataSourceに準拠しています。UITableView デリゲートと DataSource メソッドが実装されているため、このビュー コントローラーはテーブル ビュー コントローラーとしても機能します。IB やストーリー ボードを使用して接続を作成します。ただし、これは、すべてをプログラムで作成する場合にも機能するはずです。

あなたの場合、UIButton をテーブルビューから分離したい場合は、上記のように UIViewController を使用することがオプションの 1 つです。

于 2012-09-26T11:29:56.630 に答える
-1

The you should add the button within the tableHeaderView

-(void)createFlipButton
{
    UIButton *button = [UIButton buttonWithType:UIButtonTypeInfoDark];
    button.frame = CGRectMake(10, 10, 18, 19);
    [button addTarget:self action:@selector(flipView) forControlEvents:UIControlEventTouchDown];
    self.tableView.tableHeaderView = button
    self.tableView.delegate = self;
    [self.tableView reloadData];
}



and implement the following UITableView Delegate
-(CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section   {

return 44;/// sample
}
于 2012-09-17T13:57:43.350 に答える
-1

UItableViewCellにボタンを追加

[cell.contentView addSubview:Button];
于 2012-10-01T11:10:01.633 に答える