Ios 使用SizeToFit()顶部对齐UILabel会导致跳转
以下代码用于将UILabel中的文本垂直对齐到视图框的左上角。但是,它会导致文本在正确的垂直顶部对齐和垂直居中之间来回跳转。它跳跃的节奏似乎与位置更新率有关Ios 使用SizeToFit()顶部对齐UILabel会导致跳转,ios,swift,uilabel,Ios,Swift,Uilabel,以下代码用于将UILabel中的文本垂直对齐到视图框的左上角。但是,它会导致文本在正确的垂直顶部对齐和垂直居中之间来回跳转。它跳跃的节奏似乎与位置更新率有关 func locationManager(manager: CLLocationManager!, didUpdateLocations locations: [AnyObject]!) { var userlocation: CLLocation = locations[0] as! CLLocation CLGeoc
func locationManager(manager: CLLocationManager!, didUpdateLocations locations: [AnyObject]!) {
var userlocation: CLLocation = locations[0] as! CLLocation
CLGeocoder().reverseGeocodeLocation(userlocation, completionHandler: {
(placemarks, error) -> Void in
if( error != nil )
{
println("Error: \(error.localizedDescription)")
return
}
if( placemarks.count > 0 )
{
let placeMark = placemarks[0] as! CLPlacemark
self.nearestAddressLabel.text = ABCreateStringWithAddressDictionary(placeMark.addressDictionary, false);
self.nearestAddressLabel.sizeToFit()
}
else
{
println("No placemarks!")
}
})
}
问题所在:
你知道我该如何避免这种可怕的跳跃吗?更新:
如果使用故事板和自动布局,则不应使用sizeToFit。sizeToFit是旧方式、预自动布局的一部分,如果情节提要使用任何约束,它的行为将不符合预期
相反,在界面生成器中:
将“行”设置为0允许多行
根据需要使用任何约束定位标签
为宽度添加固定约束
使用小于或等于为高度添加限制
这将确保位置正确,并允许自动布局在内容更新时根据需要调整UILabels高度
更新2:
我不完全清楚为什么我会被否决,因为建议的答案是有效的。
在本例中,我使用计时器更新标签,请参见结果:
更新:
如果使用故事板和自动布局,则不应使用sizeToFit。sizeToFit是旧方式、预自动布局的一部分,如果情节提要使用任何约束,它的行为将不符合预期
相反,在界面生成器中:
将“行”设置为0允许多行
根据需要使用任何约束定位标签
为宽度添加固定约束
使用小于或等于为高度添加限制
这将确保位置正确,并允许自动布局在内容更新时根据需要调整UILabels高度
更新2:
我不完全清楚为什么我会被否决,因为建议的答案是有效的。
在本例中,我使用计时器更新标签,请参见结果:
为什么地址经常变化?你能控制吗?UILabel框架对于文本来说太大了吗?如果您临时将标签的backgroundColor设置为UIColor,您可以很容易地看到这一点。PurpleColoral那么您的标签是在故事板中创建的吗?@MichaelL:它的变化速度与位置的更新速度一样快。应用程序正在尝试显示最近的地址。这只是一个测试/学习应用程序。@是的,标签是在故事板中创建的。你的背景色提示很有启发性-看起来我的sizeToFit调用正在调整标签大小以适应文本,但由于某些原因,每次它跳转时,看起来标签越来越大,与我在故事板中的大小相匹配,并且文本在这种状态下无法正确地垂直对齐顶部。为什么地址经常更改?你能控制吗?UILabel框架对于文本来说太大了吗?如果您临时将标签的backgroundColor设置为UIColor,您可以很容易地看到这一点。PurpleColoral那么您的标签是在故事板中创建的吗?@MichaelL:它的变化速度与位置的更新速度一样快。应用程序正在尝试显示最近的地址。这只是一个测试/学习应用程序。@是的,标签是在故事板中创建的。你的背景色提示很有启发性-看起来我的sizeToFit调用正在调整标签大小以适应文本,但由于某些原因,每次它跳转时,看起来标签越来越大,以匹配我在故事板中的大小,并且文本在该状态下无法正确垂直对齐顶部。这本质上就是我所做的,尽管我在故事板中没有通过代码指定帧。有没有任何理由认为这种方法不起作用?这就是我所做的,虽然我没有通过代码指定框架,而是在情节提要中这样做。有没有任何理由认为这种方法行不通?