我目前有一个UILabel:
factLabel = [[UILabel alloc] initWithFrame:CGRectMake(20, 100, 280, 100)];
factLabel.text = @"some text some text some text some text";
factLabel.backgroundColor = [UIColor clearColor];
factLabel.lineBreakMode = UILineBreakModeWordWrap;
factLabel.numberOfLines = 10;
[self.view addSubview:factLabel];
Run Code Online (Sandbox Code Playgroud)
在我的iOS应用程序的整个生命周期中,factLabel获取一堆不同的值.有些有多个句子,有些只有5或6个单词.
如何设置,UILabel以便字体大小更改,以便文本始终适合我定义的范围?
我目前正在寻找具有属性的UILabel addMessageLabel.layer.cornerRadius = 5.0f;在安装了iOS 7.0的设备上,它有圆角.在安装了iOS 7.1的设备上,它没有圆角.
这只是iOS 7.1的一个错误吗?
我在使用自动布局尝试实现一些非常基本的布局行为时遇到了麻烦.我的视图控制器在IB中看起来像这样:

顶部标签是标题标签,我不知道它会有多少行.我需要标题标签来显示所有文本行.我还需要另外两个标签和小图像放在标题正下方,不管它有多高.我在标签和小图像之间设置了垂直间距约束,在标题标签和超视图之间设置了顶部间距约束,在小图像和超级视图之间设置了底部间距约束.白色UIView没有高度约束,因此它应该垂直拉伸以包含其子视图.我已将标题标签的行数设置为0.
如何调整标题标签以适应字符串所需的行数?我的理解是我不能使用setFrame方法,因为我正在使用自动布局.我必须使用自动布局,因为我需要那些其他视图保持在标题标签下面(因此约束).
我怎样才能做到这一点?
我试图根据不同的字符串长度计算UILabel的高度.
func calculateContentHeight() -> CGFloat{
var maxLabelSize: CGSize = CGSizeMake(frame.size.width - 48, CGFloat(9999))
var contentNSString = contentText as NSString
var expectedLabelSize = contentNSString.boundingRectWithSize(maxLabelSize, options: NSStringDrawingOptions.UsesLineFragmentOrigin, attributes: [NSFontAttributeName: UIFont.systemFontOfSize(16.0)], context: nil)
print("\(expectedLabelSize)")
return expectedLabelSize.size.height
}
Run Code Online (Sandbox Code Playgroud)
以上是我用来确定高度但不起作用的当前功能.我非常感谢能得到的任何帮助.我会在Swift中给出答案而不是Objective C.
我有一个UILabel我想在顶部和底部添加空间的地方.在约束中使用最小高度我将其修改为:

编辑:要做到这一点,我用过:
override func drawTextInRect(rect: CGRect) {
var insets: UIEdgeInsets = UIEdgeInsets(top: 0.0, left: 10.0, bottom: 0.0, right: 10.0)
super.drawTextInRect(UIEdgeInsetsInsetRect(rect, insets))
}
Run Code Online (Sandbox Code Playgroud)
但我要找到一种不同的方法,因为如果我写两行以上的问题是相同的:

我应该如何以编程方式(以及在哪种方法中)配置UILabel,其高度取决于其文本?我一直在尝试使用Storyboard和代码的组合进行设置,但无济于事.每个人都建议sizeToFit在设置lineBreakMode和numberOfLines.但是,不管我把代码viewDidLoad:,viewDidAppear:或者viewDidLayoutSubviews我不能让它开始工作.要么我的盒子太小而不能长文本也不会长,或者我把它做得太大而且不会缩小.
是否有内置的方法来创建圆角UILabels?如果答案是否定的,那么如何创建这样的对象呢?
有没有办法根据需要制作标签自动换行文字?我将换行符设置为自动换行并且标签足够高以容纳两行,但看起来它只会换行换行符.我是否必须添加换行符才能使其正确包装?如果它不能水平放置,我只想要它包装.
是否可以自动调整UILabel框/边界的大小以适应包含的文本?(我不在乎它是否比显示器大)
因此,如果用户输入"你好"或"我的名字真的很长,我希望它适合这个盒子",它永远不会被截断,标签会相应地"加宽"吗?
我想在UILabel旁边显示一个图像,但是UILabel有可变的文本长度,所以我不知道在哪里放置图像.我怎么能做到这一点?
ios ×10
uilabel ×10
iphone ×4
objective-c ×4
cocoa-touch ×3
autolayout ×2
cornerradius ×1
fonts ×1
ios6 ×1
ios7 ×1
padding ×1
string ×1
swift ×1
swift3 ×1
uikit ×1
uiview ×1
word-wrap ×1