在Xcode中,我创建了UITableView
Dynamic Prototypes
。第一个单元格由button
,label
和MKMapView
组成。
在我的...cellForRowAtIndexPath:
方法中,我使用以下代码:
UITableViewCell *header = [self getNewCell:@"entity_header"];
// Send map to back (put map behind everything else)
MKMapView *MapView = (MKMapView*)[header viewWithTag:2];
[tableView sendSubviewToBack:MapView];
// Also tried using `header` here. [header sendSubviewToBack:MapView];
// Set the image of the back button.
UIButton *backButton = (UIButton*)[header viewWithTag:1];
UIImage *backBtnImg = [UIImage imageNamed:@"images/backBtn.png"];
[backButton setImage:backBtnImg forState:UIControlStateNormal];
[tableView bringSubviewToFront:backButton];
// Also tried using `header` here. [header bringSubviewToFront:backButton];
我想将MKMapView
发送到其他组件后面,但上面的代码无效。
注意:我在这里使用viewWithTag
的原因是我不必为所有组件创建插座。 (在不使用更多实现文件的情况下从UITableViewCell
内部创建出口非常棘手)
答案 0 :(得分:3)
我认为您正在使用自定义单元格。所以问题可能出在这一行。 MKMapView *MapView = (MKMapView*)[header viewWithTag:2];
而是试试这个。
MKMapView *MapView = (MKMapView*)[header.contentView viewWithTag:2];
他们也是这样。
[header.contentView sendSubviewToBack:MapView];
注意:如果所有内容的子视图的边界都小于MKMapView
,则MKMapView
始终显示在屏幕上。