我想在垂直滚动视图中添加一些'rowviews'。我已将此rowView视图创建为IB中的单独nib。它们的大小为1024/200(ipad)。现在我想在我的父UIScrollView中逐个放置它们。我尝试了一个简单的[vScroll addSubview:rowView]但是这使得它们彼此重叠(我使rowview透明以检查这一点)。所以我开始愚弄每个rowview的界限无济于事。这是我的代码。注意'self.yExtentSoFar'初始化为0.想象一下为每一行调用下面的代码:
MyRowView *rowView = [[MyRowView alloc] init];
float calculatedWidth = 0;
// minus nav bar
float calculatedHeight = 0;
[[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications];
UIInterfaceOrientation orientation = [UIDevice currentDevice].orientation;
if (orientation == UIInterfaceOrientationPortrait){
// iPad
calculatedWidth = 768.0;
calculatedHeight = 960.0;
}else{
// iPad
calculatedWidth = 1024.0;
calculatedHeight = 704.0;
}
[self.vScroll addSubview: rowView.view];
[rowView.view setBounds:CGRectMake(0, self.yExtentSoFar, calculatedWidth,200)];
[self.vScroll setContentSize:CGSizeMake(calculatedWidth, yExtentSoFar+200)];
self.yExtentSoFar += 200;
所以在我尝试设置边界之前,rowviews显得彼此叠加。我猜是可以理解的。当我设置边界时,第二行视图没有像预期的那样出现在第一行下面,而是我必须下拉vScroll而第二个已经出现在第一个关闭屏幕上面了!
有人能指出我出错的地方吗?非常感谢,
麦克
答案 0 :(得分:3)
您希望通过设置frame
。
具体而言,你会混淆参考坐标。界限是指该视图的显示量。而框架是视图放置在其超视图中的位置(和大小)。
请参阅“框架,边界和中心的关系”View Programming Guide for iPhone
答案 1 :(得分:2)
你做错了;-)你在这里解释的或多或少是使用UITableView重新实现的。 Use a UITableView和自定义表格视图单元格。它会让你的生活更轻松
。