0

UITableviewcell にいくつかのラベルがあります セッターでラベルのフォントを変更したいのですが、奇妙な理由から

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath

デバッグすると、セル内に何も割り当てられていないことがわかります。セッターをドロップすると、すべて正常に動作しますが、使用したくないシステムフォントが使用されます。

誰かがなぜそれが起こったのかを理解するのを手伝ってもらえますか?

Cell.h ファイル

#import <UIKit/UIKit.h>

@interface CheckoutCell : UITableViewCell
@property (weak, nonatomic) IBOutlet UILabel *labelQuantity;
@property (weak, nonatomic) IBOutlet UILabel *labelMainDescription;
@property (weak, nonatomic) IBOutlet UILabel *labelCountName;
@property (weak, nonatomic) IBOutlet UILabel *labelInchSize;
@property (weak, nonatomic) IBOutlet UILabel *labelMMsize;
@property (weak, nonatomic) IBOutlet UILabel *labelStaticTotal;
@property (weak, nonatomic) IBOutlet UILabel *labelTotalPrice;
@property (weak, nonatomic) IBOutlet UILabel *label_ItemPrice;
@property (weak, nonatomic) IBOutlet UIButton *btnBuyAnotherProduct;
@property (weak, nonatomic) IBOutlet UIButton *btnAddAnotherSet;



@end

cell.m ファイル

#import "CheckoutCell.h"

@implementation CheckoutCell

- (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) setLabelCountName:(UILabel *)labelCountName
{
    [self setLabel:labelCountName];

}
-(void) setLabelMMsize:(UILabel *)labelMMsize
{
    [self setLabel:labelMMsize];

}
-(void) setLabel_ItemPrice:(UILabel *)label_ItemPrice
{
    [self setLabel:label_ItemPrice];
}
-(void) setLabelInchSize:(UILabel *)labelInchSize
{
    [self setLabel:labelInchSize];

}
-(void) setLabelMainDescription:(UILabel *)labelMainDescription
{
    [labelMainDescription setFont:[UIFont fontWithName:@"MuseoSans-500" size:14]];
}
-(void) setLabelQuantity:(UILabel *)labelQuantity
{
    [labelQuantity setFont:[UIFont fontWithName:@"MuseoSans-500" size:18]];
}
-(void) setLabelTotalPrice:(UILabel *)labelTotalPrice
{
    [labelTotalPrice setFont:[UIFont fontWithName:@"MuseoSans-500" size:14]];
}
-(void) setLabelStaticTotal:(UILabel *)labelStaticTotal
{
    [labelStaticTotal setFont:[UIFont fontWithName:@"MuseoSans-500" size:14]];
}
//BTN setters
-(void) setBtnAddAnotherSet:(UIButton *)btnAddAnotherSet
{
    [btnAddAnotherSet.titleLabel setFont:[UIFont fontWithName:@"MuseoSans-500" size:12]];
    btnAddAnotherSet.titleLabel.textAlignment = UIBaselineAdjustmentAlignCenters;


}
-(void) setBtnBuyAnotherProduct:(UIButton *)btnBuyAnotherProduct
{
    [btnBuyAnotherProduct.titleLabel setFont:[UIFont fontWithName:@"MuseoSans-500" size:12]];
    btnBuyAnotherProduct.titleLabel.textAlignment = UIBaselineAdjustmentAlignCenters;

}

//generic setter
-(void) setLabel:(UILabel *)label
{
    [label setFont:[UIFont fontWithName:@"MuseoSans-300" size:10]];

}
@end

誰が助けるかのために10倍前もって..

4

1 に答える 1

1

ラベルを作成して再度設定するのではなく、ラベルのテキストを設定するだけでよいと思います。例えば

-(void) setLabelCountName:(UILabel *)labelCountName{
[self setLabel:labelCountName];

}

する必要があります

-(void) setLabelCountName:(NSString *)labelCountName{
[self.labelCountName setText:labelCountName];

}

また、StoryBoardデザイナーまたはinitWith...メソッドでフォントを変更する必要があります。

于 2013-03-12T13:56:46.337 に答える