调整UITableViewCell的contentView时对UILabel的过渡效果

时间:2012-10-17 21:05:28

标签: objective-c ios cocoa-touch uitableview uiview

在iPhone上的mail.app中,每封电子邮件的摘要显示在UITableView中。当用户在一行上滑动时,标签会调整大小以容纳删除按钮,并重新包装文本(在较小的空间中,换行符可以移动)。

我已经想出如何更新标签的宽度,以便文本重新包装。但是你也会注意到Apple在重新对齐时会在标签的文字上使用一个整洁的小褪色动画。我怎样才能实现类似的目标?

我试图在willTransitionToStatedidTransitionToState中操纵标签的alpha,但我无法让它工作。

1 个答案:

答案 0 :(得分:1)

我检查了iOS 5的行为,以确保iOS 6中添加的对NSAttributedString的支持没有启用它,它似乎不是。既然如此,我看到了几种重建方式。我已经做了类似的事情,但并没有完全相同,所以带上一粒盐(但我几乎是肯定的,它会产生完全相同的效果)。

您可以尝试以下内容......

向UILabel添加遮罩层。掩模层应该让一切都通过。 (所以blackColor将作为我相信的背景颜色)。将子图层添加到遮罩层。该子图层将成为效果的驱动程序。它会将背景颜色从黑色淡化为白色(使其下方的颜色逐渐淡出)。您希望子图层蒙版应用于正在消失的标签区域。您可以将框架固定到此区域,它应该可以解决。如果您需要一些示例代码,请告诉我。

编辑:

你见过这个帖子吗?这可能有助于使其隐含地发挥作用。 animate textlabel in uitableviewcell using willTransitionToState