Таким образом, у меня есть объект UIView (называемый шкалой) с правой стороны, который является вертикальной чертой. У меня есть другая метка слева от этой панели, которую я хочу отображать разным текстом на разных уровнях вертикальной панели (navLabel). Я хочу, чтобы этот ярлык выглядел так, как будто он закреплен на некотором расстоянии (например, 10 пикселей) от моей вертикальной полосы. Мой ярлык оставлен выровненным. Я делаю это разными способами, где мне нужно обновить метку:
CGSize labelSize = [navLabel.text sizeWithFont:[UIFont fontWithName:@"Arial" size:17.0]];
CGRect newFrame = CGRectMake(gauge.frame.origin.x - 10 - labelSize.width, FIRST_HEIGHT, navLabel.frame.size.width, navLabel.frame.size.height);
[UIView animateWithDuration:0.5 animations:^{
self.navLabel.frame = newFrame;
}];
В разных методах я просто изменяюсь на соответствующую высоту (т.е. #define FIRST_HEIGHT
).
Мой ярлык заканчивается в тех местах, где я хочу, но анимация выглядит забавно. Например, если мой первый ярлык был @"label 1"
, а мой второй ярлык был @"my much much much longer label"
, то получается, что ярлык перемещается на правильную высоту, но поскольку ярлыки имеют разные размеры, вы также видите x-анимацию, которая делает это выглядит смешно. Я хочу только анимацию в направлении у. Как я могу это сделать?
Я также попытался выровняться по правому краю, но моя метка не соответствует правильному расстоянию до моего измерительного объекта. Это заканчивает тем, что пересекло это много раз, и я не уверен, почему это происходит.