【发布时间】:2015-05-21 06:34:23
【问题描述】:
我必须在UITableViewCell 右侧管理我的UIButton 位置,如下图所示。
在这个单元格中,我从情节提要中给出了除按钮之外的所有约束。因为我在运行时创建了按钮,如下所示
在tableview:cellForRowAtIndexPath方法中
let mybutton = UIButton.buttonWithType(UIButtonType.Custom) as! UIButton
var width:CGFloat = UIScreen.mainScreen().bounds.width
mybutton.frame = CGRectMake(width - 108, 8, 100, 31)
mybutton.tag = indexPath.row
cell?.contentView.addSubview(mybutton)
所以问题是当我们以纵向启动应用程序时它可以,但是当我们旋转它时,按钮显示在纵向位置......例如如果按钮位置在纵向 220 则在横向显示为 220 并且滚动后它看起来不错,因为单元格可重用性...
为了解决这个问题,我将尝试手动向按钮添加一些约束。我不太了解如何以编程方式添加约束,但我会为顶部位置添加如下约束......并且与尾随类似
cell?.contentView.addConstraint(
NSLayoutConstraint(item:imageview ,
attribute: NSLayoutAttribute.Top,
relatedBy: NSLayoutRelation.Equal,
toItem:mybutton ,
attribute:NSLayoutAttribute.Top,
multiplier: 1, constant: 8))
但它显示出突破性的约束......
所以我的问题是……
情节提要+手动约束如何处理
如何在单元格右侧定位按钮
【问题讨论】:
-
请尝试通过情节提要解决此问题。用代码来维护约束是很痛苦的。请阅读统一故事板developer.xamarin.com/guides/ios/platform_features/… 以在设备处于不同方向时进行自定义约束。
-
我也想这样做...但问题是保持按钮的状态...由于单元格可重用性,我必须以编程方式添加按钮..所以现在我必须添加以编程方式限制按钮...
-
为了单元格可重用性,您可以将按钮放在 xib 中的单元格内,也可以在 xibs 上使用约束,这样更简洁。
-
@Bhavin 对于单元可重用性,您可以根据条件显示/隐藏此按钮,而不是每次都以编程方式添加。然后您可以在 StoryBoard 中管理约束。
-
@objectiveCarlo 是的,但是现在……我会做除了这个之外的所有事情……所以我想用这种风格解决它……
标签: ios swift autolayout nslayoutconstraint