我想在带有圆角的黑色矩形上创建一个标签,并在标签的边框和矩形的边框之间添加一些填充。如果在运行时文本长度发生变化,还必须正确包装标签。
外观应该是这样的观点:
但内置于我的视图内而非浮动。
我没有iOS界面构建器的经验,我该如何实现?
答案 0 :(得分:1)
最简单的方法是
创建一个黑色背景颜色的简单UILabel并设置其角半径。您可以将此标签放在任何您想要的位置。
答案 1 :(得分:1)
据我所知,您希望显示一个弹出窗口,以显示一些动态的文本,只需传递文本即可显示在任何地方。
您需要做的是创建一个自定义视图,其中包含带有顶部,底部,前导和尾随约束的标签,其大小将根据文本增加。使用参数descriptionText:NSString
和onViewController:UIViewController
创建一个类方法。在里面根据文本设置customView的框架。
如果您想让尺寸动态,可以使用以下代码: -
-(CGSize)getLabelSizeFortext:(NSString *)text forWidth:(float)width WithFont:(UIFont *)font
{
CGSize constraint = CGSizeMake(width, MAXFLOAT);
CGRect titleRect = [text boundingRectWithSize:constraint options:(NSStringDrawingUsesLineFragmentOrigin| NSStringDrawingTruncatesLastVisibleLine) attributes:@{NSFontAttributeName:font} context:nil];
return titleRect.size;
}
在您的类方法中,将您的customView添加到currentViewController
onViewController.view.addSubView(self)
如果需要,可以为其设置动画,并在几秒钟后让它消失,以便用户能够阅读文本。就外观而言,将backgroundColor设置为[UIColor blackColor],将alpha设置为8.0。
答案 2 :(得分:0)
你可能只用一个标签就可以逃脱。
如果您没有为标签指定特定宽度,它将根据文本的长度调整自身大小。
您可以在“属性”选项卡的“查看”部分下的Interface Builder中更改标签的背景颜色和不透明度。
圆角需要在代码中完成,方法是更改标签CALayer(import UIKit
class TableViewController: UITableViewController {
var array = ["first", "second", "third"]
override func numberOfSectionsInTableView(tableView: UITableView) -> Int {
return 1
}
override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return array.count
}
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("Cell", forIndexPath: indexPath)
let text = array[indexPath.row]
let result: String
switch text {
case "first": result = "works"
case "second": result = "works also"
case "third": result = "what a surprise, works also"
default: result = "doesn't work"
}
cell.textLabel?.text = text
cell.detailTextLabel?.text = result
return cell
}
}
)的圆角半径。您可以通过在Interface Builder中添加用户定义的运行时属性来更改角点,但我还没有尝试过,所以我无法肯定地说出我的想法。