0

ビューの側面からスライドして表示されるメニューを作成したいので、プログラムで UIView と UITableView を作成しましたが、表示されたときにビュー内のセルを選択できないため、ビューを作成したコードを次に示しますそしてテーブル:

paintView=[[UIView alloc]initWithFrame:CGRectMake(0, 0, 160, 400)];
[paintView setBackgroundColor:[UIColor clearColor]];    
tablaConfig = [[UITableView alloc]initWithFrame:CGRectMake(-160, 0, 160, 400) style:UITableViewStylePlain];
tablaConfig.delegate = self;
tablaConfig.dataSource = self;
tablaConfig.userInteractionEnabled = YES;
tablaConfig.scrollEnabled = NO;
tablaConfig.backgroundColor = [UIColor lightGrayColor];
[paintView addSubview:tablaConfig];

そして、テーブルを表示および非表示にするコードは次のとおりです。

- (IBAction)btnTablaConfig:(id)sender {

    if (selector) {
        if (self.view.frame.origin.x == 0) {

            //[self.view addSubview:paintView];

            [UIView beginAnimations:nil context:NULL];
            [UIView setAnimationDuration:0.5];
            CGRect rect = self.view.frame;

            // Move right.
            rect.origin.x += 160;
            rect.size.width -= 160;

            self.view.frame = rect;
            [UIView commitAnimations];
            selector = false;
            tablaConfig.userInteractionEnabled = YES;
       }

    }
    else {

        if (self.view.frame.origin.x == 160) {
            [UIView beginAnimations:nil context:NULL];
            [UIView setAnimationDuration:0.5]; // if you want to slide up the view
            CGRect rect = self.view.frame;
            rect.origin.x -= 160;
            rect.size.width += 160;

            self.view.frame = rect;
            [UIView commitAnimations];
            selector = true;
            tablaConfig.userInteractionEnabled = NO;
        }
        //[paintView removeFromSuperview];
    }
}

あなたが助けてくれることを願っています

編集

これを使用すると、セルを選択できますが、スライド効果が失われます。どうすれば両方を取得できますか?

- (IBAction)btnTablaConfig:(id)sender {

if (selector) {
    [self.view addSubview:tablaConfig];
    selector = false;
}
else {
    [tablaConfig removeFromSuperview];
    selector = true;

}
4

3 に答える 3

2

私もこの問題を抱えていましたが、それも見つかりませんでした。

カスタム コントロール テーブルビュー ショーを使用してNIDropDownいますが、選択またはスクロールできません。問題は私がするときだった[anySuperView addSubview:anyTableView];

anySuperViewのサイズ (75) は、私anyTableViewのサイズ (400) より小さかったです。だから私はsuperViewsサイズ(500)を作り、私の問題は解決しました。

これについてより技術的な詳細を提供できる団体は、高く評価されます。

他のどこにも解決策が見つからなかったので、これに答えるのがとても遅くなりました

于 2014-03-28T15:23:19.757 に答える
1

あなたが何を探しているのかよくわかりません。ただし、選択時にセルを強調表示する場合は、次のコード行を tableView に追加する必要があります: cellForRowAtIndexPath:

yourcell.selectionstyle = UITableViewSelectionStyleBlue

UITableViewSelectionStyleGray も使用できます。行を選択したときに何らかのアクションを実行したい場合は、tableviewdelegate メソッドを使用できます。

選択の管理

– tableView:willSelectRowAtIndexPath:

– tableView:didSelectRowAtIndexPath:

– tableView:willDeselectRowAtIndexPath:

– tableView:didDeselectRowAtIndexPath:

UITableViews は扱いにくい場合がありますが、このようなものは次の Apples リファレンスで簡単に見つけることができます。

http://developer.apple.com/library/ios/navigation/

クラスまたはデリゲート、または使用しているものを検索するだけです。

于 2012-09-17T10:04:35.700 に答える
0

同様の問題がありました。テーブルビューをさらに下に追加し、インストールされているかどうかを追跡するフラグを設定することで解決しました。コード内で、[paintView addSubview:tablaConfig]; を移動します。btnTablaConfig: メソッドに挿入し、テーブルが最初に展開されたときに実行します。この問題には、ビューの初期化コードのタイミングが関係しているようです。

于 2012-11-02T23:34:07.487 に答える