diff --git a/SIAlertView/SIAlertView.h b/SIAlertView/SIAlertView.h index e4d620a..e676fb9 100644 --- a/SIAlertView/SIAlertView.h +++ b/SIAlertView/SIAlertView.h @@ -74,6 +74,7 @@ typedef void(^SIAlertViewHandler)(SIAlertView *alertView); - (void)setCancelButtonImage:(UIImage *)cancelButtonImage forState:(UIControlState)state NS_AVAILABLE_IOS(5_0) UI_APPEARANCE_SELECTOR; - (void)setDestructiveButtonImage:(UIImage *)destructiveButtonImage forState:(UIControlState)state NS_AVAILABLE_IOS(5_0) UI_APPEARANCE_SELECTOR; +@property (nonatomic) BOOL isNeedHorizonLayout; - (id)initWithTitle:(NSString *)title andMessage:(NSString *)message; - (void)addButtonWithTitle:(NSString *)title type:(SIAlertViewButtonType)type handler:(SIAlertViewHandler)handler; diff --git a/SIAlertView/SIAlertView.m b/SIAlertView/SIAlertView.m index 7a67df3..0c2b252 100644 --- a/SIAlertView/SIAlertView.m +++ b/SIAlertView/SIAlertView.m @@ -757,6 +757,20 @@ - (void)validateLayout button = self.buttons[1]; button.frame = CGRectMake(CONTENT_PADDING_LEFT + width + GAP, y, width, BUTTON_HEIGHT); } else { + + if (self.isNeedHorizonLayout) { + [self horizonLayout:y]; + } + else { + [self verticalLayout:y]; + } + } + } + +} + +-(void)verticalLayout:(CGFloat)y +{ for (NSUInteger i = 0; i < self.buttons.count; i++) { UIButton *button = self.buttons[i]; button.frame = CGRectMake(CONTENT_PADDING_LEFT, y, self.containerView.bounds.size.width - CONTENT_PADDING_LEFT * 2, BUTTON_HEIGHT); @@ -770,10 +784,27 @@ - (void)validateLayout } } } +-(void)horizonLayout:(CGFloat)y +{ + CGFloat btnWidth = (self.containerView.bounds.size.width-(self.buttons.count+1)*CONTENT_PADDING_LEFT)/self.buttons.count; + for (NSUInteger i = 0; i < self.buttons.count; i++) { + UIButton *button = self.buttons[i]; + button.frame = CGRectMake(CONTENT_PADDING_LEFT+i*(btnWidth+CONTENT_PADDING_LEFT), y, btnWidth, BUTTON_HEIGHT); } } - (CGFloat)preferredHeight +{ + if (self.isNeedHorizonLayout) { + return [self preferredHorizonHeight]; + } + else { + return [self preferredVeticalHeight]; + } + +} + +-(CGFloat)preferredVeticalHeight { CGFloat height = CONTENT_PADDING_TOP; if (self.title) { @@ -802,6 +833,30 @@ - (CGFloat)preferredHeight return height; } +-(CGFloat)preferredHorizonHeight +{ + CGFloat height = CONTENT_PADDING_TOP; + if (self.title) { + height += [self heightForTitleLabel]; + } + if (self.message) { + if (height > CONTENT_PADDING_TOP) { + height += GAP; + } + height += [self heightForMessageLabel]; + } + if (self.items.count > 0) { + if (height > CONTENT_PADDING_TOP) { + height += GAP; + } + + height += BUTTON_HEIGHT; + + } + + height += CONTENT_PADDING_BOTTOM; + return height; +} - (CGFloat)heightForTitleLabel { if (self.titleLabel) {