タグ付けされた質問 「uitableview」

UITableViewは、iOSで情報のリストを表示および編集するために使用されるクラスです。テーブルビューでは、アイテムが1つの列に表示されます。UITableViewは垂直スクロールのみを許可しますが、UITableViewはUIScrollViewのサブクラスであり、ユーザーはテーブルをスクロールできます。

30
-didSelectRowAtIndexPath:呼び出されていません
タブビュー内にテーブルビューがあるiOSアプリを書いています。私UITableViewControllerはで実装しましたが-tableView:didSelectRowAtIndexPath:、実行時に行を選択すると、メソッドが呼び出されません。ただし、テーブルビューにデータが入力されているため、コントローラーの他のtableViewメソッドが呼び出されていることがわかります。 これを実現するために私が台無しにしたかもしれないアイデアは誰にもありますか?

23
XibファイルからカスタムUITableViewCellsをどのようにロードしますか?
質問は簡単です:UITableViewCellXibファイルからカスタムをどのようにロードしますか?これにより、Interface Builderを使用してセルを設計できます。メモリ管理の問題により、答えは明らかに単純ではありません。このスレッドは問題に言及し、解決策を提案しますが、NDAのリリース前であり、コードが不足しています。決定的な答えを提供せずに問題を議論する長いスレッドがあります。 ここに私が使用したいくつかのコードがあります: static NSString *CellIdentifier = @"MyCellIdentifier"; MyCell *cell = (MyCell *)[tableView dequeueReusableCellWithIdentifier:CellIdentifier]; if (cell == nil) { NSArray *nib = [[NSBundle mainBundle] loadNibNamed:CellIdentifier owner:self options:nil]; cell = (MyCell *)[nib objectAtIndex:0]; } このコードを使用するには、の新しいサブクラスであるMyCell.m / .hを作成し、必要なコンポーネントをUITableViewCell追加IBOutletsします。次に、新しい「空のXIB」ファイルを作成します。IBでXibファイルを開き、UITableViewCellオブジェクトを追加し、その識別子を「MyCellIdentifier」に設定し、そのクラスをMyCellに設定してコンポーネントを追加します。最後に、IBOutletsをコンポーネントに接続します。IBでファイルの所有者を設定していないことに注意してください。 他のメソッドは、ファイルの所有者の設定を推奨し、追加のファクトリクラスを介してXibがロードされない場合にメモリリークを警告します。上記のInstruments / Leaksでテストしたところ、メモリリークはありませんでした。 では、Xibからセルをロードする標準的な方法は何ですか?ファイルの所有者を設定しますか?工場は必要ですか?もしそうなら、ファクトリーのコードはどのように見えますか?複数のソリューションがある場合は、それぞれの長所と短所を明確にしましょう...

15
NSLayoutConstraint "UIView-Encapsulated-Layout-Height"とは何ですか?強制的にクリーンに再計算するにはどうすればよいですか?
UITableViewiOS 8で実行していて、ストーリーボードの制約からセルの自動高さを使用しています。 自分のセルの1つにシングルが含まれていて、UITextViewユーザー入力に基づいて縮小および拡張する必要があります-テキストを縮小/拡張するにはタップします。 これを行うには、テキストビューにランタイム制約を追加し、ユーザーイベントに応じて制約の定数を変更します。 -(void)collapse:(BOOL)collapse; { _collapsed = collapse; if(collapse) [_collapsedtextHeightConstraint setConstant: kCollapsedHeight]; // 70.0 else [_collapsedtextHeightConstraint setConstant: [self idealCellHeightToShowFullText]]; [self setNeedsUpdateConstraints]; } これを行うときはいつでも、tableView更新でラップして呼び出します[tableView setNeedsUpdateConstraints]: [tableView beginUpdates]; [_briefCell collapse:!_showFullBriefText]; [tableView setNeedsUpdateConstraints]; // I have also tried // [self.tableView reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationTop]; // with exactly the same results. [tableView endUpdates]; これを行うと、セルが展開します(そして、展開中にアニメーション化します)が、制約の警告が表示されます。 2014-07-31 …

30
テキストフィールドが選択されたときにUITableViewをスクロールさせる
多くの試行錯誤の後、私はあきらめて質問をしています。同様の問題を抱えている多くの人を見てきましたが、すべての答えが正しく機能するわけではありません。 私が持っているUITableViewカスタムセルで構成されています。セルは、隣り合った5つのテキストフィールドで構成されています(グリッドのようなものです)。 の下部にあるセルをスクロールして編集しようとするとUITableView、キーボードの上にセルを適切に配置することができません。 ビューサイズの変更などについて多くの回答が見られますが、これまでのところ、どれもうまく機能していません。 誰かがこれを行う「正しい」方法を具体的なコード例で明確にできますか?

30
1つのUITableViewCellの区切り線を非表示
をカスタマイズしていUITableViewます。最後のセルで区切られている行を非表示にしたい...これを行うことはできますか? できることはわかっていますtableView.separatorStyle = UITableViewCellStyle.Noneが、それはtableViewのすべてのセルに影響します。最後の細胞にのみ影響を与えたい。

20
スワイプして削除し、[詳細]ボタンを押します(iOS 7のメールアプリと同様)。
ユーザーが(iOS 7のメールアプリのように)テーブルビューでセルをスワイプしたときに「詳細」ボタンを作成する方法 私はこことCocoa Touchフォーラムの両方でこの情報を探していましたが、答えを見つけることができないようで、自分よりも賢い誰かが解決策を提供できることを願っています。 ユーザーがテーブルビューのセルをスワイプしたときに、複数の編集ボタン(デフォルトは削除ボタン)を表示したいと思います。iOS 7のメールアプリでは、スワイプして削除できますが、[MORE]ボタンが表示されます。

4
TableViewのNSIndexPathを作成する方法
定義した関数のテーブルの行1を削除する必要があります。deleteRowAtIndexPath使用するにIndexPathは、セクションと行が定義されたを使用する必要があります。このようなインデックスパスを作成するにはどうすればよいですか? int {1}を唯一のメンバーとして持つ配列はクラッシュします。NSLogメッセージは、セクションも定義する必要があることを示しています。 *編集->セルの削除に関連するコード: NSIndexPath *myIP = [[NSIndexPath alloc] indexPathForRow:0 inSection:0]; NSArray *myArray = [[NSArray alloc] initWithObjects:myIP, nil]; // [self.tableView beginUpdates]; [self.tableView deleteRowsAtIndexPaths:myArray withRowAnimation:UITableViewRowAnimationFade]; // [self.tableView endUpdates];

9
コンテンツが画面に収まるときにUITableViewテーブルのスクロールを無効にする方法
私のiphoneアプリにいくつかの(グループ化されたスタイルの)テーブルがあります(画面の一部のみで追加されてInterface Builderいますが、からサブクラス化されていませんUITableViewController)。時間の80%は小さく、画面に収まります。テーブルが画面に収まったら、スクロールを無効にして、少し見やすくします。しかし、テーブルが画面から消えた場合(後で行が追加されたとき)は、再度スクロールを有効にしたいと思います(そうしないと、そのコンテンツが表示されないためです)。 これを行う方法はありますか?理解できないようです。私はすることを知っています: tableView.scrollEnabled = NO; しかし、どこで、またはこれを機能させるためにテーブルオブジェクトのサイズなどを計算する必要があるかどうかはわかりません。 更新:これが最終的に私のために働いた解決策です: if (table.contentSize.height < table.frame.size.height) { table.scrollEnabled = NO; } else { table.scrollEnabled = YES; } reloadDataテーブルを呼び出した後にこのコードを実行すると、適切なサイズが計算され、機能しているように見えます。 table.frame.size.heightInterface Builder画面に表示されるオブジェクトの実際のサイズ(これはで確認できます)ですが、table.contentSize.heightは高さです:ヘッダー、フッター、および追加されたすべてのセルの高さ。

9
カスタムUITableViewCellsの高さの設定
表示するラベル、ボタン、画像ビューがいくつかあるカスタムUITableViewCellを使用しています。テキストがNSStringオブジェクトであるセルには1つのラベルがあり、文字列の長さは可変である可能性があります。このため、UITableViewのheightForCellAtIndexメソッドではセルに一定の高さを設定できません。セルの高さは、NSStringのsizeWithFontメソッドを使用して決定できるラベルの高さに依存します。使ってみましたがどこかうまくいかないようです。どうすれば修正できますか? セルの初期化に使用されるコードは次のとおりです。 if (self = [super initWithFrame:frame reuseIdentifier:reuseIdentifier]) { self.selectionStyle = UITableViewCellSelectionStyleNone; UIImage *image = [UIImage imageNamed:@"dot.png"]; imageView = [[UIImageView alloc] initWithImage:image]; imageView.frame = CGRectMake(45.0,10.0,10,10); headingTxt = [[UILabel alloc] initWithFrame: CGRectMake(60.0,0.0,150.0,post_hdg_ht)]; [headingTxt setContentMode: UIViewContentModeCenter]; headingTxt.text = postData.user_f_name; headingTxt.font = [UIFont boldSystemFontOfSize:13]; headingTxt.textAlignment = UITextAlignmentLeft; headingTxt.textColor = [UIColor blackColor]; dateTxt = …

6
ストーリーボードで、複数のコントローラーで使用するカスタムセルを作成するにはどうすればよいですか?
作業中のアプリでストーリーボードを使用しようとしています。アプリにはリストとユーザーがあり、それぞれに他のコレクションが含まれています(リストのメンバー、ユーザーが所有するリスト)。だから、それに応じてListCellとUserCellクラスがあります。目標は、それらをアプリ全体で再利用できるようにすることです(つまり、私の任意のtableviewコントローラーで)。 ここで問題が発生します。 どのストーリーコントローラーでも再利用できるカスタムのテーブルビューセルをストーリーボードに作成するにはどうすればよいですか? これまでに私が試した具体的なことを次に示します。 コントローラー#1で、プロトタイプセルを追加し、クラスをUITableViewCellサブクラスに設定し、再利用IDを設定し、ラベルを追加して、それらをクラスのアウトレットに配線しました。コントローラー#2で、空のプロトタイプセルを追加し、同じクラスに設定して、以前と同じようにIDを再利用します。実行すると、コントローラー#2にセルが表示されるときにラベルが表示されません。コントローラー#1で正常に動作します。 各セルタイプを異なるNIBで設計し、適切なセルクラスに配線しました。ストーリーボードで、空のプロトタイプセルを追加し、そのクラスを設定して、自分のセルクラスを参照するためにIDを再利用しました。コントローラのviewDidLoadメソッドで、それらのNIBファイルを再利用IDに登録しました。表示すると、両方のコントローラーのセルはプロトタイプのように空でした。 両方のコントローラーのプロトタイプを空にしてクラスを設定し、IDを私のセルクラスに再利用します。セルのUIを完全にコードで構築しました。セルはすべてのコントローラーで完全に機能します。 2番目のケースでは、プロトタイプが常にNIBをオーバーライドしていると思います。プロトタイプセルを強制終了した場合、NIBを再利用IDに登録すると機能します。しかし、セルから他のフレームにセグエをセットアップすることはできません。これが、ストーリーボードを使用することの本質です。 結局のところ、ストーリーボードでテーブルビューベースのフローを配線し、コードではなく視覚的にセルレイアウトを定義するという2つのことが必要です。今のところ、両方を取得する方法はわかりません。

18
ストーリーボードのカスタムセルの行の高さの設定が応答しない
テーブルビューのセルの1つのセルの高さを調整しようとしています。問題のセルの「サイズインスペクタ」内の「行の高さ」設定からサイズを調整しています。iPhoneでアプリを実行すると、セルのデフォルトサイズはテーブルビューの「行サイズ」から設定されます。 テーブルビューの「行サイズ」を変更すると、すべてのセルのサイズが変わります。1つのセルにのみカスタムサイズを設定したいので、これは行いません。プログラムで問題を解決する投稿をたくさん見ましたが、可能であれば、ストーリーボードを介して実行することをお勧めします。

26
UITableViewで押されたUIButtonを検出する
私はUITableView5 を持っていUITableViewCellsます。各セルには、UIButton次のように設定されたが含まれています。 - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { NSString *identifier = @"identifier"; UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:identifier]; if (cell == nil) { cell = [[UITableView alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:identifier]; [cell autorelelase]; UIButton *button = [[UIButton alloc] initWithFrame:CGRectMake(10, 5, 40, 20)]; [button addTarget:self action:@selector(buttonPressedAction:) forControlEvents:UIControlEventTouchUpInside]; [button setTag:1]; [cell.contentView addSubview:button]; [button release]; …

24
選択したUITableViewセルの選択を解除する方法は?
特定のセルを事前選択する必要があるプロジェクトに取り組んでいます。 を使用してセルを事前選択でき-willDisplayCellますが、ユーザーが他のセルをクリックしたときに選択を解除することはできません。 - (void)tableView:(UITableView*)tableView willDisplayCell:(UITableViewCell*)cell forRowAtIndexPath:(NSIndexPath*)indexPath { AppDelegate_iPad *appDelegte = (AppDelegate_iPad *)[[UIApplication sharedApplication] delegate]; if ([appDelegte.indexPathDelegate row] == [indexPath row]) { [cell setSelected:YES]; } } - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { AppDelegate_iPad *appDelegte = (AppDelegate_iPad *)[[UIApplication sharedApplication] delegate]; NSIndexPath *indexpath1 = appDelegte.indexPathDelegate; appDelegte.indexPathDelegate = indexPath; [materialTable deselectRowAtIndexPath:indexpath1 animated:NO]; } 手伝ってくれますか?

19
UITapGestureRecognizerがUITableViewを壊しましたdidSelectRowAtIndexPath
キーボードが表示されたときにテキストフィールドを上にスクロールする独自の関数を記述しました。テキストフィールドから離れてタップしてキーボードを閉じるために、タップして離れたときにテキストフィールドでUITapGestureRecognizerファーストレスポンダーを辞任する処理を行うを作成しました。 ここでUITableView、テキストフィールドのすぐ下に作成し、ユーザーがテキストを入力するとアイテムが入力されるテキストフィールドのオートコンプリートも作成しました。 ただし、自動補完テーブルのエントリの1つを選択すると、didSelectRowAtIndexPathは呼び出されません。代わりに、タップジェスチャレコグナイザが呼び出され、ファーストレスポンダを辞任するようです。 タップジェスチャー認識機能にタップメッセージをに渡し続けるように指示する方法がいくつかあるUITableViewと思いますが、それが何であるか理解できません。任意の助けをいただければ幸いです。


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.