iOS 8 + Swift - 希望定义多条车道,但根据事件绘制它们

iOS 8 + Swift - Looking to define multiple lanes, but draw them based on events

我的一个应用故事板中有 3 个按钮。根据用户按下的按钮,我想画一条不同的线。我是 iOS 开发的新手,我正在查看 Apple 的开发人员库以了解有关如何创建上下文、路径和线路定义的详细信息,但我无法弄清楚定义上下文和路径的实现多行。

在此先感谢您的帮助。

编辑 - 2015-02-24: 澄清问题并添加视频解释我如何在另一个平台上执行此操作。

因为这个问题可能难以理解,并且因为我在 Windows 开发方面有更多经验,所以我创建了一个 Windows Phone 应用程序来展示我想做的事情在 iOS+Swift.

以下是我在 XAML + C# 中针对 Windows 通用应用程序(运行时)

执行此操作的方法

首先,我在MainPage.xaml中定义了一行(后面添加了Tranform标签):

        <Line x:Name="line1" Stroke="Black" StrokeThickness="6" Y1="60" Y2="60" RenderTransformOrigin="0.5,0.5" Margin="1,0,-1,0" X1="30" X2="30">
        <Line.RenderTransform>
            <CompositeTransform/>
        </Line.RenderTransform>
    </Line>

然后我在 XAML 文件的 Page.Resources 部分定义故事板动画:

        <Storyboard x:Name="anLine2">
        <DoubleAnimation Duration="0" To="0" Storyboard.TargetProperty="(UIElement.RenderTransform).(CompositeTransform.TranslateX)" Storyboard.TargetName="line1" d:IsOptimized="True"/>
        <DoubleAnimationUsingKeyFrames EnableDependentAnimation="True" Storyboard.TargetProperty="(Line.X2)" Storyboard.TargetName="line2">
            <EasingDoubleKeyFrame KeyTime="0" Value="30"/>
            <EasingDoubleKeyFrame KeyTime="0:0:0.30" Value="380"/>
        </DoubleAnimationUsingKeyFrames>
    </Storyboard>

我定义按钮:

<Button x:Name="btnL1" Content="Line 1" HorizontalAlignment="Left" VerticalAlignment="Bottom" Margin="10,0,0,0" Click="btnL1_Click"/>

最后我在按下按钮时触发了动画<>:

        private void btnL1_Click(object sender, RoutedEventArgs e)
    {
        anLine1.Begin();
    }

我定义了 3 行和 3 个按钮。结果见这个视频(视频中看起来有点断断续续,不过是因为有截屏软件的缘故,在模拟器和测试机上执行都很流畅): http://youtu.be/Y4i2IUehl7U

现在,我想要的是能够做到这一点,但在 iOS 上使用 Swift。我希望这有助于澄清问题。

提前致谢!

我想你想要的是为正在绘制的线条设置动画 - 如果是这样,请参阅以下问题:

how to draw line with animation?

特别是其中一个答案有这个 link:

http://tumbljack.com/post/179975074/complex-interpolation-with-cashapelayer-free

基本上,使用 CAShapeLayer 并制作从空路径到包含目的地的路径的动画。