我快速创build我的UILabel: let label = UILabel(frame: CGRect( x: 50, y: 50, width: 100, height: 50)) 设置属性似乎很容易: label.textColor = UIColor.redColor() 如何实现像textAlignment的枚举types? 在目标C中是这样的 label.textAlignment = NSTextAlignmentCenter; 但迅速似乎并没有工作。
是否可以在UILabel多行上使用autoshrink属性? 例如,在可用的两行上可能有较大的文本大小。
我想做一个UILabel点击。 我试过这个,但是不起作用: class DetailViewController: UIViewController { @IBOutlet weak var tripDetails: UILabel! override func viewDidLoad() { super.viewDidLoad() … let tap = UITapGestureRecognizer(target: self, action: Selector("tapFunction:")) tripDetails.addGestureRecognizer(tap) } func tapFunction(sender:UITapGestureRecognizer) { print("tap working") } }
有没有办法在iOS中的单个标签中使用两种甚至三种字体颜色? 如果以“你好,你好吗”为例,“你好”是蓝色的,“你好”是绿色的? 这是可能的,它似乎比创build多个标签更容易?
我有我的iPhone应用程序中需要填充的各种意见,例如一个自定义的UIButton左alignment的文本和UILabel与背景颜色。 这可能是一个非常愚蠢的问题,但我怎样才能应用“填充”从左边移动文本? 我已经厌倦了使用边界等没有任何成功。 我知道我可以用背景颜色为我的UILabel创build一个包装视图,但看起来像是过度杀伤。 非常感谢。
对于一个给定的NSRange ,我想在UILabel中find一个对应于该NSRange的字形的NSRange 。 例如,我想在“快速的棕色狐狸跳过懒狗”一句中find包含“狗”一词的CGRect 。 诀窍是, UILabel有多行,文本是真正的attributedText文本,所以要findstring的确切位置有点困难。 我想写在我的UILabel子类上的方法看起来像这样: – (CGRect)rectForSubstringWithRange:(NSRange)range; 详情,对于那些有兴趣的人: 我的目标是能够创build一个具有UILabel的确切外观和位置的新UILabel,然后我可以进行animation制作。 其余的我已经知道了,但是特别是这一步让我暂时陷入困境。 到目前为止,我所做的努力来解决这个问题: 我希望在iOS 7中,会有一些文本工具包可以解决这个问题,但是大多数我见过的使用Text Kit的例子都集中在了UITextView和UITextField ,而不是UILabel 。 我看到另一个关于Stack Overflow的问题,可以解决这个问题,但是接受的答案已经超过两年了,而代码对于归因文本performance不佳。 我敢打赌,正确的答案涉及以下其中之一: 使用标准的文本工具包方法在一行代码中解决这个问题。 我敢打赌,它会涉及NSLayoutManager和textContainerForGlyphAtIndex:effectiveRange 编写一个复杂的方法,将UILabel分解成行,并且可能使用Core Text方法在行内find字形的矩形。 我现在最好的select是分开@ mattt的优秀TTTAttributedLabel ,它有一个方法可以在一个点find一个字形 – 如果我反转,find一个字形的点,可能工作。 更新:这里有一个Github的要点,我已经尝试到目前为止,以解决这个问题的三件事情: https : //gist.github.com/bryanjclark/7036101
所以现在我有一个UIView在UILabel中。 我希望背景具有不透明度<1.0,标签具有1.0的不透明度。 但是,由于alphas沿着视图层次传播,所以标签最终的透明度也是<1.0。 有没有办法做我想要的,而不是让UILabel成为另一个视图的子视图?
我知道UILabel不支持在iPhone上使用软阴影。 那么实现我自己的最好的方法是什么? 编辑: 很明显,我将inheritanceUILabel并在-drawRect中绘制:我的问题是,如何将标签的内容作为graphics获取并在它们周围绘制,模糊它们等等。 编辑2: 大约一年后我回到了这个问题。 与此同时,我创build了一个类,允许您轻松地将柔和的阴影添加到标签,并调整其半径等,也可以在文本本身上绘制渐变。 你可以在GitHub上find它: https : //github.com/doukasd/iOS-Components/tree/master/Views
我想追加一个NSTextAttachment图像到我的属性string,并让它垂直居中。 我用下面的代码来创build我的string NSMutableAttributedString *str = [[NSMutableAttributedString alloc] initWithString:DDLocalizedString(@"title.upcomingHotspots") attributes:attrs]; NSTextAttachment *attachment = [[NSTextAttachment alloc] init]; attachment.image = [[UIImage imageNamed:@"help.png"] imageScaledToFitSize:CGSizeMake(14.f, 14.f)]; cell.textLabel.attributedText = [str copy]; 但是,图像似乎alignment到单元格的textLabel的顶部。 我怎样才能改变附件绘制的矩形?
下面的问题是这个问题的继续: iOS:自动布局中的多行UILabel 主要思想是每个视图都应该声明它是“首选”(内在)大小,以便AutoLayout可以知道如何正确显示它。 UILabel只是一个视图本身无法知道需要显示的大小的情况的例子。 这取决于提供的宽度。 正如mwhuss所指出的那样, setPreferredMaxLayoutWidth做了使标签跨越多行的技巧。 但这不是这里的主要问题。 问题是我何时何地得到这个宽度值,我发送作为参数setPreferredMaxLayoutWidth 。 我设法做出一些看起来合法的东西,所以如果我错了,请纠正我,如果你知道更好的方法,请告诉我。 在UIView的 -(CGSize) intrinsicContentSize 我为我的UILabels根据self.frame.width setPreferredMaxLayoutWidth 。 UIViewController的 -(void) viewDidLayoutSubviews 是我知道的第一个callback方法,主视图的子视图是用屏幕上居住的精确帧来指定的。 从那个方法里面,我操作我的子视图,使它们的内在大小失效,以便UILabel根据指定给它们的宽度分成多行。