通过intrinsicContentSize重置视图大小,达到调整内边距的目的。
@property (nonatomic, assign) UIEdgeInsets edgeInsets;
- (void)setEdgeInsets:(UIEdgeInsets)edgeInsets{
_edgeInsets = edgeInsets;
[self invalidateIntrinsicContentSize];
}
- (CGSize)intrinsicContentSize{
CGSize size = [super intrinsicContentSize];
size.width += self.edgeInsets.left + self.edgeInsets.right;
size.height += self.edgeInsets.top + self.edgeInsets.bottom;
return size;
}