在底层视图上设置阴影时,标签中的文本会变形吗?

时间:2011-08-24 20:40:53

标签: iphone objective-c ios text uilabel

我目前正在使用下面的代码为我的分段tableView

呈现视图
- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
{
    UIView *headerView = [[[UIView alloc] initWithFrame:CGRectMake(0, 0, tableView.bounds.size.width, 30)] autorelease]; 

    headerView.backgroundColor = [UIColor colorWithRed:30/255 green:30/255 blue:30/255 alpha:1.0];
    headerView.layer.masksToBounds = NO;
    headerView.layer.shadowOffset = CGSizeMake(0, 0);
    headerView.layer.shadowRadius = 3;
    headerView.layer.shadowOpacity = 0.5;
    headerView.layer.shouldRasterize = YES;

    UIBezierPath *path = [UIBezierPath bezierPathWithRect:CGRectMake(0, headerView.frame.size.height, headerView.frame.size.width, 3)];
    headerView.layer.shadowPath = path.CGPath;

    UILabel *label = [[[UILabel alloc] initWithFrame:CGRectMake(12, 7, tableView.bounds.size.width - 10, 20)] autorelease];
    label.font = [UIFont boldSystemFontOfSize:16];
    label.text = header;
    label.textColor = [UIColor whiteColor];
    label.shadowColor = [UIColor blackColor];
    label.shadowOffset = CGSizeMake(0.0f, 1.0f);
    label.backgroundColor = [UIColor colorWithRed:30/255 green:30/255 blue:30/255 alpha:1.0];
    [headerView addSubview:label];

    return headerView;
}

出于某种原因虽然文字被破坏了一点点而且有点扭曲?我已经将它缩小到我在图层上施加的效果,虽然我不确定为什么要这样做?

1 个答案:

答案 0 :(得分:2)

我发现您将shouldRasterize设置为YES。设置光栅化比例有帮助吗?只有在使用iPhone 4时才需要这样做。

 [[headerView layer] setRasterizationScale:[[UIScreen mainScreen] scale]];