2011-06-22 9 views
4

私のiPhoneアプリケーション用のカスタムテーブルビューセルをXcode 4で作成しようとすると問題が発生しました。私は.hと.mファイルを作成し、セル内に存在するサブビューを作成し、実際のコントロールをInterface BuilderのセルのXIBファイルにドラッグしました。しかし、アウトレットをIBコントロールに接続する方法を理解することはできません。私が読んだチュートリアルでは、オブジェクトリストのTableViewCellオブジェクトからサブビューへドラッグ&ドロップしていますが、私のIBOutletsはポップアップウィンドウに表示されません。利用できるコンセントは、 'acccessoryView'、 'backgroundView'、 'editingAccessoryView'、 'backgroundSelectedView'のみです。私は自分のIBOutletsもそのリストに載せてはいけませんか?または、正しい手順に従っていないのですか? (私はiPhone開発にかなり新しい)。カスタムUITableViewCell用のIBOutletsを接続できません

.H:ここ

は、私は、カスタムセルクラスのために使用しているコードです

// 
// RecommendationCell.h 
// Tuneplug 
// 
// Created by Bill Labus on 6/21/11. 
// Copyright 2011 __MyCompanyName__. All rights reserved. 
// 

#import <UIKit/UIKit.h> 


@interface RecommendationCell : UITableViewCell { 
    UIImageView *artwork; 
} 

@property (nonatomic, retain) UIImageView *artwork; 

@end 

.M:

// 
// RecommendationCell.m 
// Tuneplug 
// 
// Created by Bill Labus on 6/21/11. 
// Copyright 2011 __MyCompanyName__. All rights reserved. 
// 

#import "RecommendationCell.h" 

@implementation RecommendationCell 

@synthesize artwork; 


- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier 
{ 
    self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]; 
    if (self) { 
     // Initialization code 
    } 
    return self; 
} 

- (void)setSelected:(BOOL)selected animated:(BOOL)animated 
{ 
    [super setSelected:selected animated:animated]; 

    // Configure the view for the selected state 
} 

- (void)dealloc 
{ 
    [super dealloc]; 
} 

@end 

は(私はサブビューを減少させることに注意してください今のところ「アートワーク」の画像表示のみで、簡単に把握できます)。助けてくれてありがとう!

答えて

7

私は誤解していない限り:IBOutletタグを追加する

てみてください。

IBOutlet UIImageView *artwork; 

@property (nonatomic, retain) IBOutlet UIImageView *artwork; 

このタグは、あなたのコードを認識するためにInterface Builderを伝えXcodeの中の#defineです。

+0

FACEPALM。うわー、恥ずかしい。しかし、本当にそれを修正してくれてありがとう。 :) – blabus

+1

+1、しかし、ベストプラクティスは、ここでmmalcが述べたように '@ property'で宣言しています:http://stackoverflow.com/questions/155964/what-are-best-practices-that-you-use-when -writing-objective-c-and-cocoa#167495 – darvids0n

2

.xibファイルの名前がカスタムクラスと同じになっていても、Interface BuilderのテーブルビューセルのクラスIDをカスタムクラスに設定する必要があります。タイプRecommendationCell。

(パトリックが言及した)他の問題は、あなたがそうのように、@property宣言ではなく、インスタンス変数にあなたの.hでIBOutletを宣言するべきであるということです。私が出会ったので、

UIImageView *artwork; 

@property (nonatomic, retain) IBOutlet UIImageView *artwork; 
0

更新する募集これは最近です。 xcode 7.1.1では、通常はUIViewController xibのようにファイルの所有者からドラッグできません。

インターフェイスビルダーのカスタムUITableViewCellの.xibファイルに移動します。

enter image description here

これは説明するのは難しいので、私は画像、でもそれで、私は本当によくこのことを説明していますわからないんだけど、うまくいけば、それは助けを含めました。あるいは、少なくとも私が再びそれを見つけたら、私が何を話しているのか分かります。

右あなたのUILabelsかを含むUITableViewCellのカスタムをクリックしてUIImageなど

これは、カスタムUITableViewCellの内に含まれ、あなたのIBOutletsとオブジェクトのすべてをリストアップメニューが表示されます。右の空の円の上にマウスを置き、Ctrlキーを押しながらクリックしてオブジェクトにドラッグします。

関連する問題