滚动视图,如应用详细信息屏幕

时间:2009-08-31 01:55:51

标签: objective-c cocoa-touch uitableview uiscrollview

我正在尝试找出在AppStore应用中创建视图的最佳方式,例如应用详细信息屏幕。我想要一个缩略图和文本内容,如果内容太长,所有内容都会滚动。这是在tableview还是scrollview中完成的?

1 个答案:

答案 0 :(得分:3)

我在滚动视图中创建了一个。我从这个方法计算了每个元素框架的大小:

- (CGSize)sizeWithFont:(UIFont *)font constrainedToSize:(CGSize)size lineBreakMode:(UILineBreakMode)lineBreakMode

我通过在每个标签后添加它来保持y大小的总计。最后,如果滚动视图超过一定的大小(我的页面长度),我将该大小赋予滚动视图,在末尾添加一点,以便它不会碰到底部。

以下是一些代码:

int currentYPos;
CGSize maximumSize = CGSizeMake(300, 9999);
[scrollView setCanCancelContentTouches:NO];
scrollView.indicatorStyle = UIScrollViewIndicatorStyleDefault;
scrollView.clipsToBounds = YES;
scrollView.scrollEnabled = YES;

scrollView.pagingEnabled = NO;

// set the title frame size
self.titleLabel.text = self.title;

CGSize titleSize = [self.titleLabel.text sizeWithFont:self.titleLabel.font 
      constrainedToSize:maximumSize 
    lineBreakMode:self.titleLabel.lineBreakMode];

currentYPos = titleSize.height + 20;

CGRect titleFrame = CGRectMake(10, 0, 300, currentYPos);
self.titleLabel.frame = titleFrame;

请注意,许多titleLabel属性都是在IB中的标签上设置的。