ошибка TS1316 Глобальный экспорт модулей может появляться только на верхнем уровне

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

Измените кадр, который вы передаете в путь безье от self.bounds до self.bounds.insetBy(dx: 5, dy: 5), где 5 - половина вашей ширины линии.

И строки:

gradient.startPoint = CGPoint(x: 0.0, y: 0.5)
gradient.endPoint = CGPoint(x: 1.0, y: 0.5)

приводят к тому, что градиент идет слева направо.

Здесь полностью работает код из вашего:

class View: UIView {
    override func layoutSubviews() {
        super.layoutSubviews()

        let path = UIBezierPath(roundedRect: self.bounds.insetBy(dx: 5, dy: 5), byRoundingCorners: [.topLeft, .bottomLeft, .topRight, .bottomRight], cornerRadii: CGSize(width: frame.size.height / 2, height: frame.size.height / 2))

        let gradient = CAGradientLayer()
        gradient.frame =  CGRect(origin: CGPoint.zero, size: frame.size)
        gradient.startPoint = CGPoint(x: 0.0, y: 0.5)
        gradient.endPoint = CGPoint(x: 1.0, y: 0.5)
        gradient.colors = [UIColor.green.cgColor, UIColor.red.cgColor]

        let shape = CAShapeLayer()
        shape.lineWidth = 10
        shape.path = path.cgPath
        shape.strokeColor = UIColor.black.cgColor
        shape.fillColor = UIColor.clear.cgColor
        gradient.mask = shape

        layer.insertSublayer(gradient, at: 0)
    }
}
1
задан mythos 20 January 2019 в 01:25
поделиться

1 ответ

Когда в файлах декларации появляются ошибки, это, как правило, указывает на то, что в файле декларации используется синтаксис, недоступный в вашей версии TypeScript.

В этом случае, давайте посмотрим на строки, сообщенные как ошибки.

64: then<U = T, V = never>(onFulfill?: ...
200: thenReject<U = T>(reason?: any): Promise<U>;

Ошибки, о которых здесь сообщается, указывают на знаки равенства в разделе аргументов типа. Это указывает на то, что аргументы типа по умолчанию не поддерживаются. Это на самом деле не имеет смысла, поскольку в TS2.3 была добавлена ​​поддержка аргументов типа по умолчанию . Я думаю, что у вас не было 2.3 установленного для этих ошибок, и версии были переключены ...

С учетом этого другие ошибки, вероятно, связаны с несовместимостью старых (< 2.1, если я правильно помню) файлов typings и новых файлов @types. С типами, установленными в node_modules/@types/q, вам не нужно включать пользовательскую папку typings, поэтому вы должны иметь возможность удалить typings/modules/q (фактически, всю папку typings), чтобы устранить другую ошибку.

Если это не решит вашу проблему, проект клонирования позволит намного легче понять, что не так.

0
ответ дан Gerrit0 20 January 2019 в 01:25
поделиться
Другие вопросы по тегам:

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