title: How do I cleanly override a property setter?
body: <p>If I want to define a custom UIView subclass that does something when its bounds are set, how do I override the setter? Overriding setBounds seems dangerous since, if I understand correctly, the getter and setter names are not part of the public interface and could change anytime.</p>
  
  <p>Of course, I use class_copyPropertyList to query the runtime for a list of properties defined in the class, then query it for the setter's name, and finally use class_addMethod to add the method, after first getting a reference to the earlier method to use for calling the original version.</p>
  
  <p>All this seems hacky. Is there a clean way to do what I want, which is guaranteed to not break on future OS versions? Thanks.</p>