将freeformed xib加载到UIScrollView中

时间:2015-03-07 18:42:00

标签: ios objective-c

我遇到了将xib加载到UIScrollView中的奇怪问题。

如果我制作推断大小的xib并将其加载到滚动视图中,它看起来很好:http://monosnap.com/image/vZ4EDOAlKLeWNZAqWsVSq87FUvJdHX.png(箭头显示了xib的中心)。

但是如果我将size属性设置为 freeform 位置或尝试以编程方式设置frame.size,则xib会水平折叠到20 px,完全忽略所需的大小:xib设置:http://monosnap.com/image/4SdHEBmrSn1MrnXCMjr88fNn5reCvb.png(灰色方块是滚动视图区域。)

我正在加载xib的方式是常规的:

@implementation LearningViewController
- (void)viewDidLoad {
   self.cardView = [[[NSBundle mainBundle] loadNibNamed:@"CardView" owner:self options:nil] lastObject];
   [self.cardScrollView addSubview:self.cardView];
}

也许我会忽略一些关键的滚动视图行为概念?

1 个答案:

答案 0 :(得分:0)

如果有人在努力解决同样的问题。如果您尝试加载小于滚动视图的xib,看起来会发生这种情况。你可以通过先添加一个空的子视图然后将你的xib放入这个子视图来解决这个问题:

UIView *content = [[UIView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width*3, 300)];
[self.cardScrollView addSubview:content];

self.cardView = [[[NSBundle mainBundle] loadNibNamed:@"CardView" owner:self options:nil] lastObject];
[content addSubview:self.cardView];