开发者

How to add a subview to a tableview only covering the table cell but not the table header view

I'm using a UISegmentedControl as the headerview of a tableview. Now I want to add loading 开发者_开发问答view (a view defined by myself) only covering the table cells but not my headerview. How do I achieve this?


You can add this view to the cell you want:

UITableViewCell *cell = [self tableView:self.tableView cellForRowAtIndexPath:indexPathOfCell];
[cell addSubview:view];


The simplest way to add the loading view would be like this

// get the frame of your table header view
CGRect headerFrame = headerView.frame;

// construct a frame that is the screen minus the space for your header
CGRect loadingFrame = [[UIScreen mainScreen] applicationFrame];
loadingFrame.origin.y += headerFrame.size.height;
loadingFrame.size.height -= headerFrame.size.height;

// use that frame to create your loading view
MyLoadingView *loadingView = [[MyLoadingView alloc] initWithFrame:loadingFrame];

// add your view to the window *
[[headerView window] addSubview:loadingView];

* Adding the view to the window may not be the best thing for your design, but since I don't know any of the details of your view hierarchy, this is the way that will always work.


Caution: If you do not cover up the segmented control, and it is enabled, the user may click on it and change the state of the app when you aren't expecting it - like when you're trying to load something for them. Be sure that you can cancel this loading view if the user changes the state of the app.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜