所以我试图实现以下内容。我有一个观点,有一个句子。只有部分句子链接到另一个视图。这就是它的样子:
I am a cat. Learn More
“了解更多”将是一个链接(蓝色),点击后会打开另一个视图。
目前我正在使用UILabel来写“我是一只猫”。我意识到添加选择器的最佳方法是使用按钮,因此“了解更多”应该是一个按钮?
有没有办法在不使用两个不同的UIComponents的情况下写出这句话?
如果没有,那么如何让UILabel和UIButton完全水平对齐呢?
以下是我在-layoutSubviews中的标签代码:
CGSize labelSize = [_label.text sizeWithFont:_label.font constrainedToSize:bounds.size lineBreakMode:_label.lineBreakMode];
_label.frame = CGRectMake(0, 0, bounds.size.width - kMarginForText, labelSize.height);
_label.center = CGPointMake(horizontalCenter, CGRectGetMaxY(_previousLabel.frame) + kDistanceBetweenPreviousAndCurrentLabel);
标签本身的代码。
_label = [[UILabel alloc] initWithFrame:CGRectZero];
_label.text = "I am a cat";
_label.font = [UIFont systemFontOfSize:14];
_label.textAlignment = NSTextAlignmentCenter;
_label.numberOfLines = 0;
_label.lineBreakMode = UILineBreakModeWordWrap;
[self addSubview:_label];
任何帮助将不胜感激!
答案 0 :(得分:0)
要回答有关单个UIComponent的问题,可以将UILabel与UITapGestureRecognizer结合使用以创建预期效果。这样就可以让整个标签都适合......但是拥有更大的水龙头目标区域几乎绝不是坏事。
特别要使用NSAttributedString来设置标签文本(NSAttributedString change color at end of string):
UILabel *label = [[UILabel alloc] init];
//Use initwithframe or setup your constraints after initialization here
label.attributedText = (your nsattributed string here)
然后将点击识别器初始化到UILabel上,您可以执行以下操作:
UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(userDidTapLearnMore)];
label.userInteractionEnabled = YES;
[label addGestureRecognizer:tap];
答案 1 :(得分:0)
您要做的是通过基线对齐它们,您可以通过选择它们并选择编辑器>在Interface Builder中轻松完成这些操作。对齐>基线,如下图所示: