Любой способ получить номера строк для статуса git

(Пропустить вниз для полного исходного кода)

Действительно полезные ответы и Брэда Ларсона, и Баха. Второй работал для меня, но для этого требуется, чтобы изображение присутствовало заранее. Я хотел что-то более динамичное, поэтому я объединил оба решения в один:

  • нарисуйте желаемый градиент на UIImage
  • , используя UIImage, чтобы установить цветовой паттерн

Результат работает, и на скриншоте ниже вы можете увидеть некоторые греческие символы, сделанные отлично. (Я также добавил штрих и тень поверх градиента).

iOS stylized UILabel, the big brown fox [/g2]

Вот специальный метод инициализации моей метки вместе с методом, который делает градиент на UIImage (часть кода для этой функциональности, которую я получил из сообщения в блоге, я не могу найти сейчас, чтобы ссылаться на нее):

- (id)initWithFrame:(CGRect)frame text:(NSString *)aText {
    self = [super initWithFrame:frame];
    if (self) {
        self.backgroundColor = [UIColor clearColor];
        self.text = aText;

        self.textColor = [UIColor colorWithPatternImage:[self gradientImage]];

    }
    return self;
}

- (UIImage *)gradientImage
{
    CGSize textSize = [self.text sizeWithFont:self.font];
    CGFloat width = textSize.width;         // max 1024 due to Core Graphics limitations
    CGFloat height = textSize.height;       // max 1024 due to Core Graphics limitations

    // create a new bitmap image context
    UIGraphicsBeginImageContext(CGSizeMake(width, height));

    // get context
    CGContextRef context = UIGraphicsGetCurrentContext();       

    // push context to make it current (need to do this manually because we are not drawing in a UIView)
    UIGraphicsPushContext(context);                             

    //draw gradient    
    CGGradientRef glossGradient;
    CGColorSpaceRef rgbColorspace;
    size_t num_locations = 2;
    CGFloat locations[2] = { 0.0, 1.0 };
    CGFloat components[8] = { 0.0, 1.0, 1.0, 1.0,  // Start color
                            1.0, 1.0, 0.0, 1.0 }; // End color
    rgbColorspace = CGColorSpaceCreateDeviceRGB();
    glossGradient = CGGradientCreateWithColorComponents(rgbColorspace, components, locations, num_locations);
    CGPoint topCenter = CGPointMake(0, 0);
    CGPoint bottomCenter = CGPointMake(0, textSize.height);
    CGContextDrawLinearGradient(context, glossGradient, topCenter, bottomCenter, 0);

    CGGradientRelease(glossGradient);
    CGColorSpaceRelease(rgbColorspace); 

    // pop context 
    UIGraphicsPopContext();                             

    // get a UIImage from the image context
    UIImage *gradientImage = UIGraphicsGetImageFromCurrentImageContext();

    // clean up drawing environment
    UIGraphicsEndImageContext();

    return  gradientImage;
}

Я попытаюсь завершить этот подкласс UILabel и опубликовать его.

EDIT:

Класс выполнен, и он находится в моем хранилище GitHub . Читайте об этом здесь !

0
задан light01 19 March 2019 в 13:54
поделиться

1 ответ

В некоторых терминалах (среди прочего, Git Bash) вы можете дважды щелкнуть любую строку * (здесь, длинный путь к файлу, но это может быть имя ветви или что-то еще), и она будет выбрана и скопирована.

После этого вам просто нужно щелкнуть правой кнопкой мыши, чтобы вставить его туда, где находится ваш курсор. Очень удобно, когда доступно.

* (очень распространенный сценарий: когда вы выполняете «добавление», как правило, вы просто перед этим делали «статус» и отображаете измененные файлы)

0
ответ дан RomainValeri 19 March 2019 в 13:54
поделиться
Другие вопросы по тегам:

Похожие вопросы: