Я хочу поместить метку Marquee Label с другим цветом текста метки

Я хочу поместить метку Marquee Label в ячейку UITableView, но с текстом, соответствующим тексту метки, другого цвета

Я использую классы MarqueeLabel, и я могу отображать эту метку Marquee на UITableViewCell, и она отлично работает.

Я также пытался использовать NSAttributedString, но MarqueeLabel не поддерживает другой цвет текста метки.

Если у кого-то есть ответ, пожалуйста, дайте мне

Спасибо.

Вот мой код

[cell.contentView addSubview:[self createMarqueeLabelWithIndex:indexPath.row]];

[cell.textLabel setTextColor:[UIColor redColor] range:NSMakeRange(4, 3)];

-(MarqueeLabel *)createMarqueeLabelWithIndex:(int)index
{

    MarqueeLabel *continuousLabel2 = [[MarqueeLabel alloc] initWithFrame:CGRectMake(10,0,300,30) rate:50.0f andFadeLength:10.0f];
    continuousLabel2.marqueeType = MLContinuous;
    continuousLabel2.continuousMarqueeSeparator = @"";
    continuousLabel2.animationCurve = UIViewAnimationOptionCurveLinear;
    continuousLabel2.numberOfLines = 1;
    continuousLabel2.opaque = NO;
    continuousLabel2.enabled = YES;
    continuousLabel2.shadowOffset = CGSizeMake(0.0, -1.0);
    continuousLabel2.textAlignment = UITextAlignmentLeft;
    continuousLabel2.backgroundColor = [UIColor clearColor];
    continuousLabel2.font = [UIFont fontWithName:@"Helvetica-Bold" size:17.000];

    NSString *strText = [[arrTicker objectAtIndex:index] objectForKey:@"text"];
    NSString *strTime = [[arrTicker objectAtIndex:index] objectForKey:@"time"];
    NSString *strUser = [[arrTicker objectAtIndex:index] objectForKey:@"userid"];

    NSString *strTemp = [NSString stringWithFormat:@"%@ %@ %@    ",strText,strTime,strUser];

    continuousLabel2.text = [NSString stringWithFormat:@"%@",strTemp];

    return continuousLabel2;
}

person Bhavesh Lathigara    schedule 26.10.2013    source источник
comment
POST часть вашего кода.   -  person user1673099    schedule 26.10.2013
comment
Отредактируйте исходный код метки выделения, который вы используете, для поддержки цветов из строк с атрибутами. Затем сделайте запрос на вытягивание, чтобы вернуть поддержку этого цвета сообществу.   -  person Jason Coco    schedule 26.10.2013
comment
@Json Coco Я уже сделал это, но все еще не работает   -  person Bhavesh Lathigara    schedule 26.10.2013


Ответы (2)


в вашей ячейке forrowatindexpath создайте uilabel и назначьте свою метку марки, чем текст uilabel, установленный в атрибутированную строку, а затем преобразуйте uilabel в метку марки, а затем добавьте дополнительное представление в свою ячейку.

Надеюсь, это будет полезно для вас. Спасибо.

person Rushik Thumar    schedule 20.11.2013

Не лучший ответ, а скорее грязный взлом.

После быстрого исследования я только что добавил [self setTextColor:[super textColor]]; к forwardPropertiesToSubLabel

- (void)forwardPropertiesToSubLabel {
    // Since we're a UILabel, we actually do implement all of UILabel's properties.
    // We don't care about these values, we just want to forward them on to our sublabel.
    NSArray *properties = @[@"baselineAdjustment", @"enabled", @"font", @"highlighted", @"highlightedTextColor", @"minimumFontSize", @"shadowColor", @"shadowOffset", @"textAlignment", @"textColor", @"userInteractionEnabled", @"text", @"adjustsFontSizeToFitWidth", @"lineBreakMode", @"numberOfLines", @"backgroundColor"];
    for (NSString *property in properties) {
        id val = [super valueForKey:property];
        [self.subLabel setValue:val forKey:property];
    }
    [self setText:[super text]];
    [self setFont:[super font]];
    [self setTextColor:[super textColor]];
}

Теперь я могу изменить цвет метки через редактор раскадровки

Редактирование MarqueeLabel в раскадровке

Примечание: Как видите, я использую обычный текст. Для атрибутированного текста хак не работает.

person twil    schedule 09.11.2013