【发布时间】:2009-08-31 01:55:50
【问题描述】:
我正在尝试找出在 AppStore 应用程序中创建应用程序详细信息屏幕等视图的最佳方法。我想要一个缩略图和文本内容,如果内容太长,所有内容都会滚动。这是在表格视图还是滚动视图中完成的?
【问题讨论】:
标签: objective-c cocoa-touch uitableview uiscrollview
我正在尝试找出在 AppStore 应用程序中创建应用程序详细信息屏幕等视图的最佳方法。我想要一个缩略图和文本内容,如果内容太长,所有内容都会滚动。这是在表格视图还是滚动视图中完成的?
【问题讨论】:
标签: objective-c cocoa-touch uitableview uiscrollview
我在滚动视图中做了一个。我通过这种方法计算了每个元素的框架的大小:
- (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 中的标签上设置的。
【讨论】: