Ios UINavigationItem:检测触摸

Ios UINavigationItem:检测触摸,ios,animation,ios10,uinavigationitem,Ios,Animation,Ios10,Uinavigationitem,是否可以在UINavigationItem中检测触摸 我想在用户点击一个UINavigationItem时,在它上面创建一个小动画 换言之: 我的标题包含了太多的文本,因此我不得不删掉它们 我希望用户在按下导航项时能够阅读完整的标题文本 为此,我需要: 察觉触摸 设置字符串/文本的动画(我可以设置一个计时器来设置动画,但是我想知道iOS中是否已经有内置函数了-你知道吗?) UINavigationItem直接继承自NSObject,正如johnryu在评论中所述,但是您可以通过添加一个UIV

是否可以在UINavigationItem检测触摸

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

换言之:

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

  • 察觉触摸
  • 设置字符串/文本的动画(我可以设置一个计时器来设置动画,但是我想知道iOS中是否已经有内置函数了-你知道吗?)

UINavigationItem
直接继承自
NSObject
,正如johnryu在评论中所述,但是您可以通过添加一个
UIView
来代替标题,而不是在导航栏中显示标题。
此视图可以由显示实际标题的UILabel和透明按钮组成。
透明按钮可以有一个动作,触发一个弹出窗口,其中包含“触碰”事件或“内部触碰”的全文。

或者,您可以向该视图中添加一个简单的点击手势识别器。

UINavigationItem
直接继承自
NSObject
,正如johnryu在评论中所述,但您可以通过添加
UIView
来代替标题,而不是在导航栏中显示标题。
此视图可以由显示实际标题的UILabel和透明按钮组成。
透明按钮可以有一个动作,触发一个弹出窗口,其中包含“触碰”事件或“内部触碰”的全文。

或者,您可以向该视图添加一个简单的点击手势识别器。

尝试将自定义标题视图指定给UINavigationItem。将其设置为带有标签的UIView,其中包含文本。在默认状态下,标签的大小将与其superview相同。确保UIView的
clipsToBounds
设置为YES/true

将UITapGestureRecognitor附加到标签或视图以切换到“动画”状态并返回

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


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

尝试将自定义标题视图指定给UINavigationItem。将其设置为带有标签的UIView,其中包含文本。在默认状态下,标签的大小将与其superview相同。确保UIView的
clipsToBounds
设置为YES/true

将UITapGestureRecognitor附加到标签或视图以切换到“动画”状态并返回

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


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

UINavigationItem不是UIView子类,它直接从NSObject继承(如中所示)。因此,您不能按它,因为它不是UI的可见元素。请为您使用的语言添加标记。相关问题可能会有所帮助:并且UINavigationItem不是UIView子类,它直接从NSObject继承(如中所示)。因此,您不能按它,因为它不是UI的可见元素。请为您使用的语言添加标记。可能有帮助的相关问题:是否可以将UIView添加到UINavigationItem?否,您可以将新UIView(作为子视图)添加到另一个UIView。UINavigationItem不是UIView。是否可以将UIView添加到UINavigationItem?否,可以将新UIView(作为子视图)添加到另一个UIView。UINavigationItem不是UIView。