Несколько основных цветов в PowerShell в одной команде

Свойство textColor не указано как анимируемое в документах Apple для разработчиков, поэтому я не думаю, что вы можете сделать это с помощью простого блока UIView animations.

Вместо этого можно использовать UIView transition.

Код:

UIView.transition(with: self.titleLabel, duration: 1.0, options: .transitionCrossDissolve, animations: {
            self.titleLabel.textColor = UIColor(red: 104/250, green: 155/250, blue: 121/250, alpha: 1)
        }, completion: { _ in
            self.titleLabel.textColor = UIColor(red:206/255, green: 206/255, blue: 206/255, alpha: 1.0)
        })

Надеюсь, это поможет вам. Дайте мне знать, если у вас все еще есть проблемы.

51
задан Peter Mortensen 23 July 2018 в 08:46
поделиться

2 ответа

Таким образом, вот что-то, что я придумал. Надежда это выручает кого-то.

$e = "$([char]27)"

enum ANSIFGColors {
  Black   = 30
  Red     = 91
  Green   = 92
  Yellow  = 93
  Blue    = 94
  Magenta = 95
  Cyan    = 96
  White   = 97
}

enum ANSIBGColors {
  Black   = 40
  Red     = 41
  Green   = 42
  Yellow  = 103
  Blue    = 44
  Magenta = 105
  Cyan    = 46
  White   = 107
}

function Colorize-Text {
  param (
    [string]$StringToColor,
    [ANSIFGColors]$TextColor,
    [ANSIBGColors]$BackgroundColor
  )

  $retValue = $null

  if ($BackgroundColor -ne $null ) { $retValue = [string]"$e[$($TextColor.value__);$($BackgroundColor.value__)m$StringToColor$e[0m" }
  else                             { $retValue = [string]"$e[$($TextColor.value__)m$StringToColor$e[0m" }

  return $retValue

}

Может использоваться таким образом;

$FirstVar = Colorize-Text -StringToColor "This is Green" -TextColor Green

$SecondVar = Colorize-Text -StringToColor "This is NOT Green" -TextColor Cyan -BackgroundColor Red

Write-host $FirstVar $SecondVar

Или безотносительно другой комбинации Вы выбираете.

0
ответ дан 7 November 2019 в 10:04
поделиться

Вы можете использовать собственную команду Write-Color или что-то, что ищет встроенные токены, меняющие цвет. Так работали escape-последовательности ANSI во времена BBS.

Но вы могли бы добиться того, чего хотите, сделав:

Write-Host "Red " -f red -nonewline; Write-Host "Blue " -f blue;

Вот небольшая простая функция, которая делает то, что вы просили.

function Write-Color([String[]]$Text, [ConsoleColor[]]$Color) {
    for ($i = 0; $i -lt $Text.Length; $i++) {
        Write-Host $Text[$i] -Foreground $Color[$i] -NoNewLine
    }
    Write-Host
}

Write-Color -Text Red,White,Blue -Color Red,White,Blue
51
ответ дан 7 November 2019 в 10:04
поделиться
Другие вопросы по тегам:

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