15

テーブル ビューの tableHeaderView のサブビューとして追加するボタンがあります。ボタンは問題なく表示され、タップアンドホールドは断続的に機能しますが、ほとんどの場合、反応しません. テーブル自体のサブビューとして追加しようとしました。効果はほぼ同じです。スクロールビューのタッチインターセプトに問題があるのではないかと思いましたが、テーブルのスクロールを無効にしても効果はありません。

私は何か間違ったことをしていますか?他の誰かがこれに遭遇しましたか?

編集 - 明確にするために、グループ化されたスタイルのテーブルのセクション ヘッダーではなく、メイン テーブル ヘッダーについて話しています。基本的には「お問い合わせ」画面をモデルに考えています。

4

9 に答える 9

24

私も同じ問題を抱えていました。私の場合、IB でインスタンス化されたコンテナー ビュー (コードでテーブル ビュー ヘッダーとして適用された) があり、UIImageView がそのコンテナーのフレーム全体を占めていました。不適切な動作をするボタンが画像ビューにありました。

次のように IB セットのサイジング ストラットが必要であることがわかりました...

コンテナー ビュー: 外部アンカーはすべてオン、内部のサイズ変更 - すべてオフ

サブ画像ビュー: すべてのストラット (インテリアとエクステリア)

いくつかの異なるテーブル ビューがあり、すべてヘッダー ビューを使用していました。タッチ イベントに正しく応答するものもあれば、不安定なものもありました。これは私の問題を解決しました

于 2010-01-01T18:25:24.253 に答える
8

私は Wisequark に完全に同意しません。tableHeaderView にボタンを配置することに何の問題もありません。ボタンを含めても、アプリがアプリ ストアから拒否されるリスクはありません。tableHeaderView は、選択した要素を含む任意のビューになるように設計されています。

あなたの問題に関しては、ビューがボタンを覆い隠している可能性があります。または、Apple に報告する必要がある単なるバグである可能性もあります。

于 2008-11-19T05:14:28.687 に答える
2

私の状況はダニー・ホールの状況と似ていました (テーブル ヘッダー ビューは UIImageView で、UIImageView のサブビューである UIButton がありました)。私の場合、ボタンが画像ビューのサブビューであるために問題が発生したようです。私にとってうまくいったのは、画像ビューとボタンの両方が「含む」ビューのサブビューになるように、UIView「含む」ビューを作成することでした。変。

于 2012-01-10T23:42:29.750 に答える
1

UITableViewで描画を処理している間、tableHeaderViewの高さは0です

このUIViewサブクラスを使用して、強力な一定の高さを設定し、UITableView処理を無視します

#import <UIKit/UIKit.h>                                                
@interface CustomHeaderCell : UIView

@end  

//-----

@import "CustomHeaderCell.h"

@implementation CustomHeaderCell


-(void)setFrame:(CGRect)frame {
    frame.size.height = 43; // !!! constant height
    [super setFrame:frame];
}

@end
于 2013-10-25T12:53:48.307 に答える
-2

フッターの高さを設定することを忘れないでください:

-(CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section{
于 2015-10-16T19:07:21.777 に答える
-9

これは headerView の意図的な訴訟ではなく、そのような実装は HIG 違反の結果として AppStore から拒否される可能性があることを考慮する必要があります。ヘッダーのサイズを小さくすることを意図していることを考えると、おそらくビューの再構築を検討する方がよいでしょう。そうは言っても、タッチイベントを手動で検出してジオメトリを自分で決定し、ジオメトリに基づいてセレクターを実行する、つまり独自のボタンクラスをローリングする以外に、簡単な方法はありません。

于 2008-11-17T23:43:58.123 に答える