88

What is the difference between addSubview and insertSubView methods when a view is added programmatically?

christopher.online
  • 2,614
  • 3
  • 28
  • 52
Ashwani K
  • 7,880
  • 19
  • 63
  • 102

4 Answers4

105

The only difference is in where the view is added: whether it is the frontmost view (addSubview:), or it is before the 5th subview, (insertSubview:atIndex:) or if it is immediately behind another subview (insertSubview:aboveSubview:).

pablasso
  • 2,479
  • 2
  • 26
  • 32
mahboudz
  • 39,196
  • 16
  • 97
  • 124
47

Using insertSubView: you can specify the index, which determines z-order of views. A view with a higher index lies above those with lower indices.

Nikolai Ruhe
  • 81,520
  • 17
  • 180
  • 200
29

I don't think there is a difference. addSubview: is simple a convenient method for

[view insertSubview:aView atIndex:[view.subviews count]]
sliver
  • 1,650
  • 2
  • 14
  • 23
-1

1.addSubview add subview in array then add in View'slayer

- (void)addSubview:(UIView *)subview
{
    [_subviews addObject:subview];
    [_layer addSublayer:subview.layer];
}

}

2.While insertSubview add your view as subview then call [_layer insertSublayer:subview.layer atIndex:index];

- (void)insertSubview:(UIView *)subview atIndex:(NSInteger)index
{
  [self addSubview:subview];
  [_layer insertSublayer:subview.layer atIndex:index];
}
Carlo
  • 1,686
  • 3
  • 29
  • 43