Как Вы явно анимируете backgroundColor CALAYER?

Я думаю, вы можете использовать renderToString для этого случая

import { renderToString } from 'react-dom/server'
...
const template = `<h1>Title<h1>
<p>This is some content.</p>
[Tag]Other content[/Tag]
<p>More random content.</p>`

const html = template.replace(/\[Tag\].+\[\/Tag\]/, renderToString(<Tag content={content} />))
34
задан Brad Larson 21 June 2018 в 14:04
поделиться

2 ответа

Вы не должны переноситься CGColorRef с при установке toValue или fromValue свойства CABasicAnimation. Просто используйте CGColorRef. Для предотвращения предупреждения компилятора можно бросить CGColorRef к id.

В моем демонстрационном приложении, следующий код анимировал предпосылки к красному.

CABasicAnimation* selectionAnimation = [CABasicAnimation 
    animationWithKeyPath:@"backgroundColor"];
selectionAnimation.toValue = (id)[UIColor redColor].CGColor;
[self.view.layer addAnimation:selectionAnimation
                       forKey:@"selectionAnimation"];

Однако, когда анимация закончена, фон возвращается к исходному цвету. Это вызвано тем, что CABasicAnimation только производит уровень представления целевого слоя, в то время как анимация работает. После концов анимации, набора значений в образцовых возвратах слоя. Таким образом, Вы оказываетесь перед необходимостью устанавливать слои backgroundColor свойство к красному также. Возможно, выключите неявные анимации с помощью CATransaction.

Вы могли сохранить себя эта проблема при помощи неявной анимации во-первых.

58
ответ дан Regexident 27 November 2019 в 16:47
поделиться

Я боролся с этой проблемой, пока экспериментально не нашел препятствие. Установка свойства backgroundColor слоя, напрямую или через анимацию, не будет иметь никакого эффекта, если вы измените цвет фона по умолчанию (или не указан) в Interface Builder, в контексте, конечно, элемента (такого как UILabel), который размещен в ИБ. Так что оставьте цвет фона неопределенным, и вышеуказанное должно работать.

2
ответ дан 27 November 2019 в 16:47
поделиться
Другие вопросы по тегам:

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