如何从长动画移动字符串中获取当前可见的子字符串

时间:2011-03-12 21:25:48

标签: iphone objective-c ios banner uiviewanimation

在一个从右到左的长动画移动字符串中,我希望得到实际可见的子字符串。是否有可能在动画过程中获得它?

我必须保留横幅的两个特征:

  1. 顺利移动
  2. 在屏幕上的某个点获取子字符串(少数字符)
  3. 它是一行中的长字符串。

    我使用这个动画:

    [UIView beginAnimations:nil context:nil];
    [UIView setAnimationDuration:10.0];
    [UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
    
    ...
    
    [UIView commitAnimations];
    

    我尝试过:

    CGPoint currentPosition = [[self.autoScrollText.layer presentationLayer] position];

    但未成功......

2 个答案:

答案 0 :(得分:0)

如果您的文字采用标准宽度字体(如Courier),则可以通过关联UITextView的位置,字符的宽度以及视口的LHS和RHS来实现此目的。

答案 1 :(得分:0)

另一种可能性是使用启发式。我猜你正在做一个不同的数字(i),具体取决于当用户点击按钮时哪个字符串是“可见的”。确切地说,这些事情中的哪一个最终取决于文本字符串的原点(x位置)。不是以编程方式解决这个问题,而是自己解决(通过观察/反复试验)并根据您确定的i范围在x个不同选项之间进行选择。