我将NSTextAlignmentRight添加到UILabel。我也给了UILabel边界。现在问题是右边没有填充。
self.lblColumnCaption.textAlignment = NSTextAlignmentRight;
请建议我如何向右边添加间距?
答案 0 :(得分:0)
有很多解决方案,但简单易用的方法是在文本之后放置一些空格。如果您不想这样,请尝试以下解决方案,
只需将没有背景设置的UILabel添加到具有背景设置的UIView。设置标签的宽度,比10小 bg视图的宽度。
UIView* bg = [[UIView alloc]initWithFrame:CGRectMake(0, 0, self.frame.size.width, 70)];
//give border and corner radius for the bg view if you want
UILabel* yourLabel = [[UILabel alloc]initWithFrame:CGRectMake(x, y, yourWidth-10, yourHeight)];
[bg addSubview:yourLabel];
[self addSubview:bg];
或者,您可以通过初始化UILabel
来解决此问题
使用自定义框架。
CGRect initialFrame = CGRectMake(0, 0, 100, 100);
UIEdgeInsets contentInsets = UIEdgeInsetsMake(0, 0, 0, 10);
CGRect paddedFrame = UIEdgeInsetsInsetRect(initialFrame, contentInsets); self.label =
[[UILabel alloc] initWithFrame:paddedFrame];
答案 1 :(得分:0)
正如其他答案中所提到的,最好的方法是继承UILabel并覆盖drawTextInRect方法。
如果你真的不想覆盖,可以使用NSAttributedString在设置textAlignment到NSTextAlignmentRight之前添加正确的填充(tailIndent属性)。
CGFloat rightPadding = 5.0f;
NSString *dateString = @"Your Date";
NSMutableParagraphStyle *style = [[NSMutableParagraphStyle alloc] init];
style.tailIndent = -rightPadding;
NSDictionary *attributes = @{NSParagraphStyleAttributeName: style};
label.attributedText = [[NSAttributedString alloc] initWithString:dateString attributes:attributes];
label.textAlignment = NSTextAlignmentRight;
答案 2 :(得分:0)
使用这段简单的代码
txtFullName.layer.sublayerTransform = CATransform3DMakeTranslation(35, 0, 0);//acc to your situation