iOS - 无法在UIScrollView中对齐UIViews

时间:2012-11-02 18:28:37

标签: iphone objective-c ios xcode cocoa-touch

我有UIViewController UIScrollView和两个标签及其中的一个按钮:

UIView
  -UIScrollView
    -UILabel
    -UILabel
    -UIButton

我需要动态调整我的UILabelsUIButton,因为每个视图都可以有不同的大小。 UILabels没问题,但我UIButton进入第二个UILabel的中间位置 这是我的代码:

self.header.text = event.title;
self.header.numberOfLines = 0;
CGFloat headerHeight = [event.title sizeWithFont:[UIFont fontWithName:@"Arial" size:20] constrainedToSize:CGSizeMake(280, 100000) lineBreakMode:UILineBreakModeWordWrap].height;
self.header.frame = CGRectMake(19, 20, 280, headerHeight);

CGFloat positionY = 40 + [self.header.text sizeWithFont:[UIFont fontWithName:@"Arial" size:20] constrainedToSize:CGSizeMake(280, 100000) lineBreakMode:UILineBreakModeWordWrap].height;

CGFloat descriptionHeight = [event.descr sizeWithFont:[UIFont systemFontOfSize:17] constrainedToSize:CGSizeMake(280, 100000) lineBreakMode:UILineBreakModeWordWrap].height;
self.descr.frame = CGRectMake(19, positionY, 280, descriptionHeight);
self.descr.text = event.descr;
self.descr.numberOfLines = 0; 

positionY =  self.descr.frame.origin.y + self.descr.frame.size.height + 40;

buyButton.frame = CGRectMake(19, positionY, 72, 37);

scrollView.contentInset = UIEdgeInsetsMake(contentInset, 0, 0, 0);
[scrollView setContentSize:CGSizeMake(320, positionY+80)];

UIScrollView在IB中设置了灵活的高度自动调整掩码。

以下是它的外观:

enter image description here

谁能告诉我我做错了什么?

更新

如果我为我的UIScrollView删除自动调整遮罩 - 一切正常

2 个答案:

答案 0 :(得分:2)

如果您的问题通过更改滚动视图上的自动调整遮罩自行解决,请务必检查按钮和标签上的自动调整遮罩,以确保它们都一致。

答案 1 :(得分:-2)

使用UISCROLLVIEW子视图的计数并将X轴设为

  CGRECTMAKE((count-count)*100)+x,y,width,height;