Правильное место для обработки порядка размещения вашего красного квадрата в методе layoutSubviews
.Табличное представление отправляет себя layoutSubviews
каждый раз, когда оно добавляет или удаляет подпредставления (и в другое время).
Вам необходимо создать подкласс UITableView
, который имеет ссылку на красный квадрат:
@interface MyTableView : UITableView
@property (weak, readonly) IBOutlet UIView *redSquare;
@end
Вы можете инициализировать redSquare
любым удобным для вас способом.Я просто положил его в свое перо вместе с представлением таблицы и переместил, чтобы оно было подпредставлением представления таблицы в awakeFromNib
:
@implementation MyTableView
@synthesize redSquare = _redSquare;
- (void)awakeFromNib {
[self addSubview:self.redSquare];
}
В любом случае, чтобы фактически убедиться, что красный квадрат всегда включенВверху ячеек таблицы и линий сетки переопределите layoutSubviews
, например:
- (void)layoutSubviews {
[super layoutSubviews];
[self bringSubviewToFront:self.redSquare];
}