Применение нескольких преобразований к UIView / CALayer

С Oracle 9i, можно использовать ПОДКЛЮЧЕНИЕ.

SELECT LPAD(' ', (LEVEL - 1) * 4) || "Name" AS "Name"
FROM (SELECT * FROM TMP_NODE ORDER BY "Order")
CONNECT BY PRIOR "Id" = "ParentId"
START WITH "Id" IN (SELECT "Id" FROM TMP_NODE WHERE "ParentId" = 0)

С SQL Server 2005, можно использовать рекурсивное общее выражение таблицы (CTE).

WITH [NodeList] (
  [Id]
  , [ParentId]
  , [Level]
  , [Order]
) AS (
  SELECT [Node].[Id]
    , [Node].[ParentId]
    , 0 AS [Level]
    , CONVERT([varchar](MAX), [Node].[Order]) AS [Order]
  FROM [Node]
  WHERE [Node].[ParentId] = 0
  UNION ALL
  SELECT [Node].[Id]
    , [Node].[ParentId]
    , [NodeList].[Level] + 1 AS [Level]
    , [NodeList].[Order] + '|'
      + CONVERT([varchar](MAX), [Node].[Order]) AS [Order]
  FROM [Node]
    INNER JOIN [NodeList] ON [NodeList].[Id] = [Node].[ParentId]
) SELECT REPLICATE(' ', [NodeList].[Level] * 4) + [Node].[Name] AS [Name]
FROM [Node]
  INNER JOIN [NodeList] ON [NodeList].[Id] = [Node].[Id]
ORDER BY [NodeList].[Order]

Оба произведут следующие результаты.

Name
'Node 1'
'    Node 1.1'
'        Node 1.1.1'
'    Node 1.2'
'Node 2'
'    Node 2.1'
30
задан Corey Floyd 10 July 2009 в 18:42
поделиться

1 ответ

Я понимаю, что это не полностью отвечает на вопрос (или близко), но если вы работаете только с CGAffineTransforms, вы можете использовать CGAffineTransformConcat () для объединения нескольких преобразований.

Это будет работать нормально, когда одни преобразования анимированы, а другие нет, если вы правильно объедините преобразования. Я не знаю, как это работает, когда вы также выполняете преобразования слоев.

45
ответ дан 27 November 2019 в 23:13
поделиться
Другие вопросы по тегам:

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