3

ストーリーボードを使用してカスタムを作成しましたUITableViewCell

私はそれをこのようにロードしています:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    HJAddCell *cell = [tableView dequeueReusableCellWithIdentifier:@"addCell"];
    // setting properties of cell 
    return cell;
}

次に、初期化中にプログラムでカスタマイズを追加する必要があります。しかし、問題は、私のHJAddCell場合、initメソッドが呼び出されないことです。メソッドが呼び出されるようにするにはどうすればよいですか、initまたは最小限の労力で初期化時にカスタムセルクラスにカスタマイズコードを追加する他の方法はありますか?

更新:UILabelsに境界線を追加する必要があります。ストーリーボードでこれを行うことは何も見つかりませんでした。

4

3 に答える 3

13

UIViewには、2つの指定された初期化子initWithFrame:と。がありinitWithCoder:ます。initWithCoder:ビューがnib/storyboardからロードされる場合、initWithFrame-ビューがプログラムで作成される場合に使用されます。

于 2012-10-03T14:14:33.100 に答える
5

もちろん、initメソッドは呼び出されていません。自分でinitメソッドを呼び出しているわけではありません。HJAddCellのnibをテーブルビューに登録している場合、呼び出される初期化メソッドはinitWithCoderです。ペン先を使用している場合は、ランタイムでカスタムUITableViewCellをカスタマイズする必要がある理由についても自問する必要があります。つまり、それはすでにカスタムセルです。必要なプロパティを使用してセルを作成する必要があります。

于 2012-10-03T14:10:32.680 に答える
0

リセットと呼ばれる新しいメソッドをHJAddCellに追加するのはどうですか?毎回使用する前に発生する必要のある初期化コードをresetメソッドに移動し、初期化子からresetを呼び出します。

次に、セルをデキューした後、resetメソッドを呼び出します。

于 2012-10-03T14:10:08.827 に答える