图像视图与同一视图控制器中的表视图

时间:2011-11-27 08:08:20

标签: iphone objective-c ios xcode

我有一个新的控制器定义如下:

@interface view1: UITableViewController

我已创建(在viewDidLoad中)一个图像视图(徽标图像),并将此图像视图添加为view1的子视图,但问题是表视图单元格仍然出现在此图像视图后面,如何完全分离图像视图从表格视图?

提前感谢。

4 个答案:

答案 0 :(得分:3)

要拥有徽标类型视图,您需要通过

为tableview设置自定义标题视图
- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section;

- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section;

另一种方法是覆盖-loadView并创建自己的视图,其中包含两个子视图,即您的imageview和一个tableview。

在第一种方法中,一旦你滚动一些徽标最终会消失。第二种方法使徽标静止。

答案 1 :(得分:2)

2个选项:

1.创建一个UIViewController来保存你的UITableViewController控制器视图和你的imageView,然后定位它们的框架,使它们不会重叠

2.将imageView添加为TableView Section Header

-(UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
{
    UIImageView* imageView = [[UIImageView alloc] initWithImage:
                              [UIImage imageWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"image" ofType:@"png"]]];
    return imageView;
}

并确保您至少有一节课程:

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
    // Return the number of sections.
    return 1;
}

答案 2 :(得分:2)

您想要的是您的徽标位于桌面视图上方的顶部?如果是这样,那么您可以在-viewDidLoad中将tableView的{​​{1}}设置为您想要的视图,例如:

tableHeaderView

如果你想让它在滚动时浮在上面,那么DanZimm使用tableView.tableHeaderView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"image"]]; // assuming ARC, else autorelease or put in variable first... 就是你想要的。

答案 3 :(得分:1)

尝试将其添加到:

- (void)viewDidAppear:(BOOL)animated

只有在调用viewDidLoad后才调用此方法,因此如果您想要其他所有内容,可以调用此方法或将子视图添加到:

[[[UIApplication sharedApplication] keyWindow] addSubview:yourView];

希望它可以帮到你。