1

編集:私がやろうとしていたことを何らかの形で実装した機能しているアプリについては、私の答えを参照してください。

私はこれをチェックし、利用可能なすべてのチュートリアルに従いました - これはすべて非常に簡単に思えますが、私のストーリーボードとインスペクタでは次のことができるようになりました:

-- カスタム UITableViewButtons にボタンを追加 (カスタム クラス 'Song Cell' を使用)

そうしようとするたびに、テーブルビューの上にあるビューにボタンが配置されます。セルを動的、静的、基本、および見つけられる他のすべてのトグル スイッチに設定しようとしました。

ビューに関しては少しぎこちない設定をしているためだと思うので、TableViewもカスタムクラスに設定しようとしました。ただし、Storyboard の Class Inspector には表示されません。このテーブルビューをカスタムクラスに設定するために私がしたことは次のとおりです。

-- SongTableViewController という UITableViewController を継承するカスタム クラスを作成します。

-- Storyboard で、テーブル ビュー コントローラーのクラスを SongTableViewController に設定します。

この階層を参照してください。

// 編集 - どうやら写真を投稿する担当者が 10 人もいないので、自分で描きます:

▼ Voting View Controller - Current Songs
   ▼ View
     ▼ Table View     // This is where I would like the custom class, SongTableViewController
       > Song Cell     
       > Song Cell    //  These cells are where I would like to add the custom buttons
       > Song Cell
       > Constraints
     > Label - 00:00
     > Label - Voting will reset in:
    Navigation Item - Current Songs
First Responder
Exit

テーブル ビューを選択し、インスペクタに移動してそのクラスを変更すると、UITableView 以外のオプションはありません。これをハードコーディングして「return」を押しても何も起こりません。

ビューの構造が原因で、これらのセルにボタンを追加できないのですか? または、他の何か?

4

3 に答える 3

1

カスタムセルでxibを作成する必要があるかもしれません。たとえば、xib「CustomeCell.xib」を持つクラス「CustomeCell」。

xib ファイルを介していくつかのオブジェクトをセルに配置し、クラスで UITableView を使用して、次のようにします。

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *CellIdentifier = @"Cell";

    CustomCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) {
        NSArray *topLevelObjects = [[NSBundle mainBundle] loadNibNamed:@"CustomCell" owner:self options:nil];
        cell = [topLevelObjects objectAtIndex:0];
    }
    // configure cell 

    return cell;
}

xibファイルでTableViewのデータソースとデリゲートをリンクし、UITableViewクラスにデリゲートを追加することを忘れないでください:)

ストーリーボードは便利ですが、場合によっては xib ファイルを使用するのが良い方法です :)

編集:このチュートリアルを読むことができます。これは、カスタム セル/テーブルビューを xib ファイルで管理する方法の非常に良い例です: http://www.appcoda.com/customize-table-view-cells-for-uitableview/

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

于 2013-03-19T20:48:23.867 に答える
0

何が起こっていたかの説明と、これを実装する方法の例を次に示します。

1 つの UIViewController サブクラスがあり、ストーリーボードにドラッグ アンド ドロップしてテーブル ビューを追加します。

次に、テーブル ビュー コントローラーとプレーン ビュー コントローラーの間のギャップを埋めるために、少し余分な作業を行う必要があります。データソースとデリゲート プロトコルに準拠していることを宣言し、テーブル ビューのアウトレットを作成し、アウトレットをテーブルに接続します。テーブル ビューのデリゲート アウトレットとデータソース アウトレットを表示し、VC に接続します。

3 つのデータソース メソッド (セクション数、行数、cellForRow...) を実装すれば完了です。

プロトタイプへのリンク

于 2013-03-19T22:26:44.703 に答える
0

おそらく、テーブル ビューのクラスを変更したくないでしょう。本当にやりたいことは、1 つ (または複数) のセル プロトタイプのクラスを変更することのようです。ストーリーボードでセルの 1 つを選択し、そのクラスを曲のセル クラスに変更します。

于 2013-03-19T20:46:07.647 に答える