0

各行に大きなカスタムUITableViewUILabelsあり、特定のテキストを黒または緑で表示したいと考えています。

NSString'sfrom aをセルに供給しNSArrayます。NSStringfrom indexのみを黒で表示したいとします30

私はこのようなことを試みていますが、うまくいきません:

NSIndexPath *indexPathWithBlackText = [NSIndexPath indexPathForRow:30 inSection:[indexPath section]];

    if (indexPath.row == indexPathWithBlackText.row) {  
        //Label with text in black 
        topLabel.textColor = [UIColor colorWithRed:0.25 green:0.0 blue:0.0 alpha:1.0];
        topLabel.highlightedTextColor = [UIColor colorWithRed:1.0 green:1.0 blue:0.9 alpha:1.0];
    } else {
        //Label with text in green 
        topLabel.textColor = [UIColor colorWithRed:0.122 green:0.467 blue:0.255 alpha:1.00];
    }

正しい方向へのヒントは大歓迎です。ありがとう!

4

3 に答える 3

1

この UITableViewDataSource デリゲート メソッドでは:

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

これを書きます:

if ([self isBlackRow:indexPath.row]) {
    // Your label reference, change color to black here.
} else {
    // Your label reference, change color to green here. 
}

行が黒かどうかを判断するメソッドを作成する

- (BOOL)isBlackRow:(NSInteger)row {
    NSArray* blackRows = [NSArray arrayWithObjects:[NSNumber numberWithInt:30], [NSNumber numberWithInt:11], nil];

    for (NSNumber* number in blackRows) {
        if (number.intValue == row) {
            return YES;
        }
    }

    return NO;
}
于 2012-06-26T18:39:14.037 に答える
1
 if (indexPath.row > 29) {  
    //Label with text in black 
    topLabel.textColor = [UIColor colorWithRed:0.25 green:0.0 blue:0.0 alpha:1.0];
    topLabel.highlightedTextColor = [UIColor colorWithRed:1.0 green:1.0 blue:0.9 alpha:1.0];
} else {
    //Label with text in green 
    topLabel.textColor = [UIColor colorWithRed:0.122 green:0.467 blue:0.255 alpha:1.00];
}
于 2012-06-26T18:44:03.747 に答える
0

テーブル ビューにラベルをどのように追加していますか?

正しいオブジェクトを参照していない可能性があります。

于 2012-06-26T18:39:03.157 に答える