【发布时间】:2013-03-09 17:28:13
【问题描述】:
基本上我希望 UIButton 出现在 UILabel 的末尾。 UILabel 是本地化的,因此定位可能会有所不同。有没有办法让我的布局恰到好处?
【问题讨论】:
-
立即查看我的答案
标签: ios objective-c layout uibutton uilabel
基本上我希望 UIButton 出现在 UILabel 的末尾。 UILabel 是本地化的,因此定位可能会有所不同。有没有办法让我的布局恰到好处?
【问题讨论】:
标签: ios objective-c layout uibutton uilabel
根据标签的宽度设置按钮的X值,这会将按钮设置在标签的右侧。现在它测试了。
button.frame = CGRectMake(self.mylabel.frame.origin.x+self.mylabel.frame.size.width, self.mylabel.frame.origin.y, 50.00, 20.00);
【讨论】:
Basically I want the UIButton to appear at the end of a UILabel 并且使用这个代码你可以看到标签的按钮显示结束所以什么不起作用?
button.frame = CGRectMake(label.frame.origin.x + label.frame.size.width - buttonWidth, label.frame.origin.y, buttonHeight, buttonWidth);
buttonWidth 和 buttonHeight 只是我用来描述你应该放在那里的任意变量
【讨论】:
label.frame.origin.x + label.frame.size.width。
我假设您想在同一个视图上添加标签和按钮。你的意思是你的文本是本地化的,直到运行时才知道文本的大小。实际上,这是您要求的其他内容。因为你需要设置标签的大小取决于文本的大小。您可以使用以下方法计算文本的大小
- (CGSize)sizeWithFont:(UIFont *)font
或者您可以在设置文本后调整标签大小
- (void)sizeToFit
完成标签大小后
你可以像这样设置按钮的框架
button.frame = CGRectMake(label.frame.origin.x + label.frame.size.with, yPosition, buttonWidth, buttonHeight);
请注意,设置好标签的边框后,还需要设置按钮的边框。如果您更改框架标签,则需要更改按钮的框架。或者 ios 6.0 之前的版本,您可以使用 NSLayoutConstraint 获取更多信息 https://developer.apple.com/library/ios/#documentation/AppKit/Reference/NSLayoutConstraint_Class/NSLayoutConstraint/NSLayoutConstraint.html
【讨论】: