4

私は非常に奇妙な問題に直面しています。メニューの目的で tableView を使用しています。正常に動作しています。しかし問題は、そのテーブルの最後の行で、上半分のエリアの火災のみがイベントを選択したことです。最後の行の中央をクリックすると、選択が機能しません。そして、セル didSelect の上半分をクリックしても問題なく動作しています。誰でも詳しく説明できますか?

これは私がtableViewを次のように使用しているスクリーンショットです:-

ここに画像の説明を入力

backTableViewのdidSelectでテーブルのy位置を設定しているコードは次のとおりです。

        UITableView *menuTable=(UITableView*)[self.view viewWithTag:5];
    CGRect rect=[menuTable frame];
    rect.origin.y-=rect.size.height;

    [UIView animateWithDuration:0.3 animations:^{
        [menuTable setFrame:rect];
    } completion:^(BOOL finished) {

        [tableView deselectRowAtIndexPath:[tableView indexPathForSelectedRow] animated:YES];
        isMenuOpen=YES;
        [bgView setFrame:self.view.frame];
        [self.view insertSubview:bgView belowSubview:menuTable];
        for (UIView *view in self.view.subviews) {
            if (view!=menuTable && view.tag!=44) {
                [view setUserInteractionEnabled:NO];
            }
        }
        NSLog(@"animation completed");
    }];

Setted rowHeight to 40
bringSubViewtoFront
TableHeight to 80 

今何ができますか?

4

6 に答える 6

5

テーブル ビューのスーパービュー (この場合はself.view) には、テーブル ビューの下部よりも高い位置で終了するフレームがあります。

これは、次のように設定すると表示されます。

self.view.clipsToBounds = YES;

これを修正するには、次のいずれかを行う必要があります

  • menuTableのフレームを短くする (のheight減少menuTable.frame)
  • のフレームをself.view高くする (のheight増加self.view.frame)
于 2013-05-30T14:04:00.730 に答える
1

私は同じ問題を抱えていて、テーブルビューのフッターの高さを1に設定することによってのみ解決されました.将来誰かを助けるかもしれません.

于 2015-12-29T08:37:46.980 に答える
0

以下のようにフッタービューを追加し、フッターの高さを設定することで解決しました。

 (UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section
    {    
    UIView *footer=[[UIView alloc]initWithFrame:CGRectZero];
    return footer;    
    }

 (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section
    {
        return 1;    
    }

問題は解決しませんが、最後に余分なセルを追加し、そのセルへのユーザー操作を無効にします。

于 2014-01-10T05:41:05.873 に答える