我在UIView中有一些按钮。我的问题是,他们被削减了 在UIView的右侧。我该如何防止这种情况?
alt text http://img.skitch.com/20090629-mj32p1bkff476256pwrpt69n2d.png
我已经检查过Interface Builders的剪辑属性,但它没有 这个问题的解决方案。
此致
答案 0 :(得分:1)
看起来您要么以编程方式创建这些按钮,要么将初始IB视图窗口重新设置得更大,并期望它缩小到适合屏幕。
有问题的按钮无法正确显示在屏幕上 - 您正在寻找什么效果?
如果您希望所有按钮都合适,您可以将文字大小设置得更小,然后它们就可以适合。
如果您希望按钮大小合适,那么您将需要制作另一行,或将按钮放入侧滚动容器中。
答案 1 :(得分:1)
我一直在使用java,最近才开始学习Apple的Obj-C框架。
滚动和换行的替代方法是使用具有1行和n列的“网格”布局,其中n是按钮的数量。每个单元格具有固定的大小。并且您必须将superview的setNeedsLayout:方法中的按钮(子视图)调整为您需要的任何宽度,以便所有按钮都适合该行。
参见java的GridLayout类。
答案 2 :(得分:0)
这是我的解决方案:
if(previousFrame.origin.x + theStringSize.width > 220){
roundedButton.frame = CGRectMake(15, previousFrame.origin.y + 30 , theStringSize.width + 8, theStringSize.height);
[myContainer insertSubview:roundedButton belowSubview:[tagsContainer.subviews lastObject]];
}else {
roundedButton.frame = CGRectMake(previousFrame.origin.x + previousFrame.size.width + 5, previousFrame.origin.y, theStringSize.width + 5, theStringSize.height);
[myContainer insertSubview:roundedButton belowSubview:[tagsContainer.subviews lastObject]];
}
我计算一下,我从左侧移动了多少像素。在某个阈值(在我的情况下是220)我开始一个新的行。