title: UILabel TextAlignement Vertical Top
body: <p>I have a great problem, I have a <code>UILabel</code> created programmatically and then connect via Interface builder, where i have positionated where I need, but i see that the text i set in it it's printed in the center of the <code>UILabelBox</code>, I have found a lot of question but i haven't know I can use it, I have found this:</p>
  
  <pre><code>//
  //  VerticallyAlignedLabel.h
  //
  
  #import &lt;Foundation/Foundation.h&gt;
  
  typedef enum VerticalAlignment {
      VerticalAlignmentTop,
      VerticalAlignmentMiddle,
      VerticalAlignmentBottom,
  } VerticalAlignment;
  
  @interface VerticallyAlignedLabel : UILabel {
  @private
      VerticalAlignment verticalAlignment_;
  }
  
  @property (nonatomic, assign) VerticalAlignment verticalAlignment;
  
  @end
  
  //
  //  VerticallyAlignedLabel.m
  //
  
  #import "VerticallyAlignedLabel.h"
  
  
  @implementation VerticallyAlignedLabel
  
  @synthesize verticalAlignment = verticalAlignment_;
  
  - (id)initWithFrame:(CGRect)frame {
      if (self = [super initWithFrame:frame]) {
          self.verticalAlignment = VerticalAlignmentMiddle;
      }
      return self;
  }
  
  - (void)setVerticalAlignment:(VerticalAlignment)verticalAlignment {
      verticalAlignment_ = verticalAlignment;
      [self setNeedsDisplay];
  }
  
  - (CGRect)textRectForBounds:(CGRect)bounds limitedToNumberOfLines:(NSInteger)numberOfLines {
      CGRect textRect = [super textRectForBounds:bounds limitedToNumberOfLines:numberOfLines];
      switch (self.verticalAlignment) {
          case VerticalAlignmentTop:
              textRect.origin.y = bounds.origin.y;
              break;
          case VerticalAlignmentBottom:
              textRect.origin.y = bounds.origin.y + bounds.size.height - textRect.size.height;
              break;
          case VerticalAlignmentMiddle:
              // Fall through.
          default:
              textRect.origin.y = bounds.origin.y + (bounds.size.height - textRect.size.height) / 2.0;
      }
      return textRect;
  }
  
  -(void)drawTextInRect:(CGRect)requestedRect {
      CGRect actualRect = [self textRectForBounds:requestedRect limitedToNumberOfLines:self.numberOfLines];
      [super drawTextInRect:actualRect];
  }
  
  @end
  </code></pre>
  
  <p>Anyone can help me how I can use it please?</p>