UINavigationItem:检测触摸

时间:2017-01-16 13:18:04

标签: ios animation ios10 uinavigationitem

是否可以在 UINavigationItem 检测 触摸

当用户点击它时,我想在 UINavigationItem 上创建一个小动画。

换句话说:

  • 我的标题包含太多文字,因此我不得不截断它们
  • 我希望用户能够在他/她按下导航项时阅读完整的标题文本
  • 为此,我需要:

    1. 检测触摸
    2. 动画字符串/文字(我可以设置一个计时器来设置动画,但是我想知道iOS中是否已有内置功能 - 你知道吗?)

2 个答案:

答案 0 :(得分:0)

UINavigationItem直接从NSObject继承,如johnryu在评论中所述,但不是在导航栏中显示标题,而是通过添加UIView代替标题。
该视图可以由显示实际标题的UILabel和透明按钮组成 透明按钮可以有一个动作,触发弹出窗口,其中包含“触地”事件或“内部触摸”的全文。 或者您可以在该视图中添加一个简单的点击手势识别器。

答案 1 :(得分:0)

尝试将自定义titleView分配给UINavigationItem。将它作为带有标签的UIView,您将在其中找到您的文本。在默认状态下,标签的大小与其superview相同。确保UIView的clipsToBounds设置为YES / true。

将UITapGestureRecognizer附加到标签或视图以切换到"动画"状态和返回。

当进入动画状态时,使标签足够宽以便为整个字符串留出足够的空间并在容器内设置动画的动画,您可以使用NSString的boundingRectWithSize:options:attributes:context:来计算合适的宽度。

然后只需添加一个动画,其中标签向左移动,直到其右端可见,如果它重复,则最好。