我有一个UILabel
,我在屏幕中间居中。数值最多可包含三位数。例如500。
我的问题是,当值发生变化时,会使UILabel
位置偏离中心。
在下面的图像中,您将看到当值等于3位时,滑块标签看起来居中,当滑块标签值为12时,标签看起来偏离中心。
我需要UILabel
将自身调整为始终位于UIView
中。
我已尝试将以下代码添加到我的UILabel
但没有运气。
self.myCircleSliderValueLabel.font = sliderValueFont;
self.myCircleSliderValueLabel.textColor = [UIColor colorWithRed:103/255.0 green:187/255.0 blue:230/255.0 alpha:1.0];;
self.myCircleSliderValueLabel.numberOfLines = 0;
self.myCircleSliderValueLabel.lineBreakMode = NSLineBreakByWordWrapping;
self.myCircleSliderValueLabel.text = @"400";
[self.myCircleSlider addSubview:self.myCircleSliderValueLabel];
self.myCircleSliderValueLabel.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleRightMargin;
答案 0 :(得分:9)
最简单快捷的方法是为myCircleSliderValueLabel
设置固定宽度(以容纳所有三位数)并将textAlignment
属性设置为NSTextAlignmentCenter
。
编辑:
或者您可以使用自动布局。像这样......
NSLayoutConstraint *con = [NSLayoutConstraint
constrainWithItem:self.myCircleSliderValueLabel
attribute:NSLayoutAttributeCenterX // It says that X center
relatedBy:NSLayoutRelationEqual // Should equal
toItem:self.myCircleSliderValueLabel.superview // To your label superview's...
attribute:NSLayoutAttributeCenterX // ... X center
multiplier:1.0
constant:0.0];
答案 1 :(得分:0)
您是否尝试过textAlignment = NSTextAlignmentCenter?