2012-05-18 22 views
3

ScreenshotUIView的设置来调整基础上的UILabel

我想在这里中心水平&所示垂直覆盖范围内我的UILabel,我想覆盖的UIView(黑色区域与后面的光阿尔法有行家lorem ipsum文本)来调整大小,使我在顶部和底部填充10像素,但仍然自动伸展其宽度。任何人都可以请我指出正确的方向?我想尽可能充满活力。

这是我必须得到它看起来像这样:

descView = [[UIView alloc] initWithFrame:CGRectMake(0, 64, self.view.bounds.size.width, 160)]; 
    descView.autoresizingMask = UIViewAutoresizingFlexibleWidth; 
    descView.backgroundColor = [UIColor colorWithWhite:0 alpha:0.5]; 

    descLabel = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 600, 120)]; 
    descLabel.center = CGPointMake(self.view.bounds.size.width/2, descView.bounds.size.height/2); 

    descLabel.backgroundColor = [UIColor clearColor]; 
    descLabel.opaque = NO; 
    descLabel.textAlignment = UITextAlignmentCenter; 

    descLabel.text = currentPhoto.desc; 
    descLabel.numberOfLines = 5; 

    descLabel.textColor = [UIColor whiteColor]; 
    descLabel.autoresizingMask = UIViewAutoresizingFlexibleMargins; 

    CGRect frame = descLabel.frame; 
    frame.origin.x = (descView.frame.size.width - descLabel.frame.size.width)/2; 

    descLabel.frame = frame; 

    [self.view addSubview:descView]; 
    [descView addSubview:descLabel]; 

回答

2

使用https://gist.github.com/2596057(那马科·阿门特的子类的UILabel)

(或)可以使用resizeHeightToFitText方法的代码做同样的没有使用IPInsetLabel的东西

一旦标签的大小适合文本大小,根据高度和宽度设置标签的原点