在iPhone上的mail.app中,每封电子邮件的摘要都显示在UITableView中。当用户在一行上滑动时,标签将调整大小以适应delete按钮,文本将重新换行(在较小的空间中,换行符可以移动)。
我已经想出了如何更新标签的宽度,使文本重新换行。但你也会注意到,当标签重新对齐时,苹果在标签的文本上使用了一个整齐的小淡入淡出动画。我如何才能达到类似的效果?
我尝试过在willTransitionToState和didTransitionToState中操作标签的alpha,但是我不能让它工作。
发布于 2012-10-18 06:37:48
我检查了iOS 5的行为,以确保它没有被iOS 6中添加的对NSAttributedString的支持所启用,而且似乎不是。既然是这样,我看到了几种重建它的方法。我做过类似的事情,但不完全是这样,所以对此持保留态度(但我几乎可以肯定它会有完全相同的效果)。
您可以尝试执行以下操作。
将遮罩层添加到UILabel。遮罩层应该让所有东西都通过。(所以我相信blackColor可以作为背景色)。添加一个子层到遮罩层。这个子层将是效果的驱动程序。它会将背景颜色从黑色淡出到白色(使它下面的颜色淡出)。您希望子层蒙版应用于正在消失的标签区域。你只需将框架固定在这个区域,它就会正常工作。如果您需要一些示例代码,请让我知道。
编辑:
你看过这个帖子吗?这可能有助于它隐式地工作。animate textlabel in uitableviewcell using willTransitionToState
https://stackoverflow.com/questions/12943364
复制相似问题