居中 UIPickerView 文本
所以我有一个 uipickerview,其中的行仅包含数字 0-24,它看起来有点傻,因为数字左对齐,在 pickerview 的右侧留下了巨大的间隙。
有没有一种简单的方法可以在 uipickerview 中居中对齐文本?
So I have a uipickerview with rows that only contain the number 0-24 and it looks a bit silly since the numbers are left aligned leaving a huge gap on the right of the pickerview.
Is there an easy way to center align text in a uipickerview?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(9)
或类似的东西。
or something like this.
现在在 iOS 6 中更容易一些...您可以实现一种新方法来返回属性字符串...并且您可以定义属性字符串中的对齐方式。
A little easier now in iOS 6... There's a new method you can implement to return an attributed string... And you can define alignment in attributed strings.
您可以实现此委托方法,该方法返回 CGFloat
- (CGFloat)pickerView:(UIPickerView *)pickerView widthForComponent:(NSInteger)component
这在选取器视图上调用以确定行宽度。
You can implement this delegate method, which returns a CGFloat
- (CGFloat)pickerView:(UIPickerView *)pickerView widthForComponent:(NSInteger)component
This is called on the picker view to determine row width.
下面的一个也工作正常 -
干杯!
Below one also working fine -
Cheers!!
请记住,其中的视图
实际上是一个 UITableViewCell,因此您可以像这样使用它:
Remember, the view in
is actually a UITableViewCell, so you can work with it like:
只需将宽度设置为视图的宽度,文本就会自动居中:
Just set the width to the width of the view and the text will center automatically:
我知道这个问题没有标记为 swift,但以防万一有人正在寻找 Swift 3.0 版本,这里是。
I know this question is not tagged for swift, but just in case somebody is looking for the Swift 3.0 version, here it is.
将 James Boucher 现代化为 swift 5。
我在 OP 直接在 attributeTitleForRow 中进行归因时进行预计算
Modernized James Boutcher to swift 5.
I precompute while the OP does an attribution directly in attributedTitleForRow
我花了很长时间才意识到我只是缺少这一行代码:
pickerView.autoresizingMask = .flexibleWidth
It took me a long time to realize I'm just missing this single line of code:
pickerView.autoresizingMask = .flexibleWidth