带有swift的动画宽度标签

时间:2015-09-22 20:52:35

标签: ios swift animation

我想改变标签的宽度,因为我的swift代码很快。 如果可能的话,请在annimation程序中进行更改。可能吗 ? 当我这样做时:

self.lblChoice1.frame.size.width += 50

我的交换标签宽度不是......为什么? 提前谢谢。

编辑: 第一个回复不起作用。

print(self.lblChoice1.frame.size.width)
self.lblChoice1.frame.size.width += 150
self.lblChoice1.contentMode = UIViewContentMode.Redraw
self.lblChoice1.setNeedsDisplay()
print(self.lblChoice1.frame.size.width)

这段代码在我的控制台中很好地显示了我:

150.0
300.0

但我的标签大小不会改变显示...

2 个答案:

答案 0 :(得分:0)

您正在更改框架,但您不会告诉视图它需要重绘自己。更改框架后,您应该调用

axisX:{intervalType: "month", interval:1}

虽然您可能需要将标签的内容模式更改为self.lblchoice1.setNeedsDisplay() ,以确保重绘。

虽然使用UIView块动画方法来做这件事会更好。

答案 1 :(得分:0)

我不认为你可以直接编辑UILabel的框架。你应该改变整个框架。

var lblChoice1Frame = self.lblChoice1.frame
lblChoice1Frame.size.width += 150

UIView.animateWithDuration(0.3) { () -> Void in
    self.lblChoice1.frame =  lblChoice1Frame
}