Как плавно закруглить углы прогрессбара при увеличении высоты?

Я пытаюсь сделать такой индикатор выполнения:

введите здесь описание изображения

Я использовал этот пост SO, чтобы узнать, как скруглять углы: Ссылка

Что отлично работает, когда высота вашего индикатора выполнения не превышает 6. Когда я увеличиваю индикатор выполнения, используя:

        progressBar.transform = progressBar.transform.scaledBy(x: 1, y: 8)

Результат:  введите описание изображения здесь

Не имеет значения, какое значение радиуса угла установлено, оно не круглое. Я знаю, что увеличение значения радиуса угла, превышающего высоту, может привести к прямым углам, но не имеет значения, что я установил для радиуса угла (я могу установить его на 1/2/4 и получить аналогичные результаты), углы не закругляются.

Вот мой код:

 progressBar.transform = progressBar.transform.scaledBy(x: 1, y: 8)
 progressBar.layer.cornerRadius = 8
 progressBar.clipsToBounds = true
 progressBar.layer.sublayers![1].cornerRadius = 8
 progressBar.subviews[1].clipsToBounds = true

(Радиус угла и значение y одинаковы, потому что y умножается на 2)


person aestusLabs    schedule 26.01.2018    source источник


Ответы (1)


Я понял это, когда писал это. Вы используете угловой радиус, как в посте выше:

progressBar.layer.cornerRadius = 8
progressBar.clipsToBounds = true
progressBar.layer.sublayers![1].cornerRadius = 8
progressBar.subviews[1].clipsToBounds = true

Чтобы увеличить размер, вы устанавливаете ограничение по высоте на индикаторе выполнения:  введите описание изображения здесь

person aestusLabs    schedule 26.01.2018