+- (void)showMessage:(NSString *)message helpButton:(BOOL)showHelpButton {
+#ifdef DEBUG
+ NSLog(@"Showing message '%@' %@ help Button", message, showHelpButton ? @"with" : @"without");
+#endif
+
+ CGSize maxSize = imageView.bounds.size;
+ if (showHelpButton) {
+ maxSize.width -= messageHelpButton.frame.size.width;
+ }
+ CGSize size = [message sizeWithFont:messageTextView.font constrainedToSize:maxSize lineBreakMode:UILineBreakModeWordWrap];
+ float height = 20.0 + fmin(100.0, size.height);
+ if (showHelpButton) {
+ height = fmax(HELP_BUTTON_HEIGHT, height);
+ }
+
+ CGRect messageFrame = imageView.bounds;
+ messageFrame.origin.y = CGRectGetMaxY(messageFrame) - height;
+ messageFrame.size.height = height;
+ [self.messageView setFrame:messageFrame];
+ messageView.autoresizingMask = UIViewAutoresizingFlexibleTopMargin | UIViewAutoresizingFlexibleWidth;
+ CGRect messageViewBounds = [messageView bounds];
+
+ self.messageTextView.text = message;
+ messageTextView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
+ if (showHelpButton) {
+ CGRect textViewFrame;
+ CGRect helpButtonFrame;
+
+ CGRectDivide(messageViewBounds, &helpButtonFrame, &textViewFrame, HELP_BUTTON_WIDTH, CGRectMaxXEdge);
+ [self.messageTextView setFrame:textViewFrame];
+
+ [messageHelpButton setFrame:helpButtonFrame];
+ messageHelpButton.alpha = 1.0;
+ messageHelpButton.enabled = YES;
+ messageHelpButton.autoresizingMask =
+ UIViewAutoresizingFlexibleLeftMargin |
+ UIViewAutoresizingFlexibleTopMargin;
+ [messageView addSubview:messageHelpButton];
+ } else {
+ [messageHelpButton removeFromSuperview];
+ messageHelpButton.alpha = 0.0;
+ messageHelpButton.enabled = NO;
+
+ [self.messageTextView setFrame:messageViewBounds];
+ }