这是iOS UITableView的一个例子吗?

时间:2011-09-22 06:46:20

标签: ios iphone button tableview

我需要做这样的事情:

http://i53.tinypic.com/14x3392.png

UITableView吗?或者我该怎么做?任何想法都是受欢迎的。

代码:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{

    if (indexPath.section == 0) {

       if (indexPath.row == 0) return cell1;

    } else if (indexPath.section == 1) {

       if (indexPath.row == 0) return cell2;

    } else if (indexPath.section == 2) {

       if (indexPath.row == 0) return cell3;
    }
}

10 个答案:

答案 0 :(得分:2)

很可能是 UITableView 。可能不是(它可以是 UIScrollView ,其中视图添加了类似于表视图中的部分)。

但是如果你想在图像中创建类似的东西,我建议你使用 UITableView 和自定义单元格。因为在这种情况下,实现表视图更简单,因为您只需要关注表视图的委托 dateSource ,而不必担心对齐视图顺序。

分段表格视图 半透明,灰色边框,黑色背景视图一起用作 backgroundView 细胞。添加标签箭头作为单元格的子视图。您可以将箭头添加为 accessoryView ,但它会垂直居中,但在图像中,箭头会稍微显示在单元格的顶部。

每个部分应该只有一个单元格。

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {

    return 1;
}

可以有任意数量的部分(这里有3个)。

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {

    return 3; // Can be any number
}

答案 1 :(得分:0)

是的,这很可能是一个样式表视图。 See this guidethis nice tutorial

答案 2 :(得分:0)

您可以使用

中的tableView执行此操作
 - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section 
{

return 1;

}

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView 
{

//here place return your array contents

}

答案 3 :(得分:0)

为什么你担心这个?它简单的人....如果你有UITableView的话,它什么都没有。是的,你必须知道: 1:在视图上设置背景图像,与表格大小完全相同。 2:将表格视图设置到它们上并使背景透明。 3:自定义表格单元格并添加到表格行。

多数民众赞成.....享受这项工作......创造力。 你可以做到这一点......

答案 4 :(得分:0)

我无法确切地说出图片中使用了什么,但我建议使用 UITableView ,特别是如果您有来自结构化对象的可变数据。

我发现一些非常有用的教程如下:

从XIB创建自定义 UITableViewCell http://www.bdunagan.com/2009/06/28/custom-uitableviewcell-from-a-xib-in-interface-builder/

UIViewTable反模式 - 一个非常好的MVC模式来构建 UIViewTable
http://www.slideshare.net/nullobject/uitableviewcontroller-antipatterns

当然Apple的文档:
HTTP:/developer.apple.com/library/ios/#DOCUMENTATION/UserExperience/Conceptual/TableView_iPhone/TableViewCells/TableViewCells.html

要记住的一个重要事实是 您应该始终通过数据源方法tableView:didSelectRowAtIndexPath:

重复使用缓存的表格单元

注意:由于您需要大量透明胶片,因此可能会出现一些性能问题,尤其是在较旧的设备上。

希望这对您的项目有所帮助和好感。

答案 5 :(得分:0)

不需要滚动视图或桌面视图...两者都执行相同的操作..

只需将Tableview的背景颜色更改为清晰的颜色.....

检查此代码......

将此行放入viewDidLoad:

[tableView setBackgroundColor:[UIColor clearColor]];

  • (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {

..... //你的标签按钮等........ ...... ...... .....

[cell setSelectionStyle:UITableViewCellSelectionStyleNone];
[cell setClipsToBounds:YES];
[[cell layer] setBorderColor:[[UIColor blackColor] CGColor]];
[[cell layer] setCornerRadius:10];

}

答案 6 :(得分:0)

我们可以通过Table View和滚动视图来完成上图中所示的类似。如果您不想使用表视图,那么您可以使用滚动视图或简单视图,并可以添加几个按钮以及在背景中的图像与不同的帧。它意味着按钮背景将具有相同的图像。然后您可以使用不同的标签根据要求显示不同标签中的所有文本。 要么 您可以使用表视图。为此,您需要在委托方法中返回第3部分(在此图像中) - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView.and然后将所有内容作为默认的tableview样式。然后更改细胞样式要详细。

答案 7 :(得分:0)

是的,这是一个带有自定义UITableViewCell的tableView。您可以通过创建一个空的xib文件,然后添加一个UITableViewCell并进行自定义...然后在cellForRowAtIndexPath方法中使用:

 UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:edentifier];
 if (cell == nil) {
    cell = [[[NSBundle mainBundle]loadNibNamed:@"yourCellName" owner:self   options:nil]objectAtIndex:0];

这是我的申请。

enter image description here

答案 8 :(得分:0)

是的,它是groupedtableviewclearcolorbackgroundcolor。单元格背景颜色也需要更改为clearcolor

答案 9 :(得分:-1)

我建议使用div或list,不要使用table,如果内容太长则很难控制。