iPhone/iOS: Will there be called any method if a U

2019-02-16 12:51发布

问题:

If I add a view as a subview like so

[self.view addSubview:mySubview];

Will there be called any method on mySubview, that I could override to add some custom behavior?

回答1:

Adding a view to a (new) superview triggers

- (void)willMoveToSuperview:(UIView *)newSuperview

and

- (void)didMoveToSuperview.

See the UIView Reference for more.



回答2:

You can override these two:

- (void)willMoveToSuperview:(UIView *)newSuperview
- (void)didMoveToSuperview

Take a look in the documentation for UIView for similar methods.



回答3:

Yes, There is a method which get called if one change the superview . you need to override the below method in your subview class.

- (void)willMoveToSuperview:(UIView *)newSuperview
- (void)didMoveToSuperview

From UIView Doucumentation

willMoveToSuperview:, didMoveToSuperview—Implement these methods as needed to track the movement of the current view in your view hierarchy.



回答4:

exep for special purpose is far better to customize you view in init phase, you have all you need and (more important) is a synchronous call.