0

我有一个 UILabel,它显示从 JSON 提要下载的一些数据,该提要显示星期几(周一、周二、周三、周四、周五、周六、周日)。

如果有办法以编程方式告诉 Xcode 将 UILabel 缩短为 3 个字母,我在徘徊吗?

我知道还有其他方法可以实现我想要的,例如一组简单的 if 函数可以完成这项工作,但我不想实际读取标签然后替换它,我只想缩短标签。

这可能吗?

4

3 回答 3

2

我没有看到库存 UILabel 的方法,但它很容易继承 UILabel 并覆盖 setText 或文本。

就像是

@interface MyLabel : UILabel
@property(assign) NSUInteger maxLength;
@end

@implementation MyLabel 
- (void)setText:(NSString*)s {
    [super setText:[s substringToIndex:self.maxLength]];
}
@end
于 2013-05-29T15:17:42.653 回答
0

swift 4.2你可以使用这个自定义类:

import UIKit

class LabelWithMaxLength: UILabel {
    var maxLength: Int = 3

    override var text: String? {
        get {
            return super.text
        }
        set(s) {
            super.text = (s as NSString?)?.substring(to: maxLength)
        }
    }
}

LabelWithMaxLength在 Interface builder中将标签自定义类设置为:

在此处输入图像描述

然后在您的代码中像这样使用它:

@IBOutlet weak var dayOfWeekLabel: LabelWithMaxLength!

dayOfWeekLabel.text = "Sunday" //or whatever was the text

结果将始终生成 3 长度的字符标签 :)

于 2019-01-06T15:19:33.350 回答
-2
UILabel *label=[UILabel alloc]init];   //label object

//Assume you will be having label text in labelText NSString object.

label.text=[labelText substringToIndex:3];
于 2013-05-29T14:44:58.680 回答