为视图应用阴影会使我的文本模糊

时间:2012-11-09 03:52:41

标签: objective-c ios calayer uicollectionview

我的集合视图单元格结构如下所述

enter image description here

对于 cellItemAtIndex ,我执行以下操作

- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath {
    UICollectionViewCell    *cell   =   [self.collectionView dequeueReusableCellWithReuseIdentifier:@"reusedCell" forIndexPath:indexPath];


    // Set shadow around the cell
    [cell.layer setMasksToBounds    :NO ];
    [cell.layer setShadowColor      :[[UIColor whiteColor ] CGColor ] ];// shadow's color
    [cell.layer setShadowOpacity    :0.65 ];                            // set the opacty
    [cell.layer setShadowRadius     :5.0 ];                             // set the blur radius
    [cell.layer setShadowOffset     :CGSizeMake( 0 , 0 ) ];             // set shadow position
    [cell.layer setShouldRasterize  :YES ];                             // tell the cell to render it’s CALayer as a bitmap
    [cell.layer setShadowPath       :[[UIBezierPath bezierPathWithRect:cell.bounds ] CGPath ] ];    // use a path to draw its shadow instead of using its
    ......................................................................
}

当我在设备上运行应用程序时,会显示阴影。但是,我的标签文字很模糊。请查看以下从我的设备中拍摄的图像

enter image description here

如果我取消注释用于删除阴影的波德块,则文本清晰如下图所示 enter image description here

我......完全迷失了。有没有人对这个问题有任何想法。请帮忙

2 个答案:

答案 0 :(得分:8)

您正在栅格化图层,但默认的栅格化比例为1.0。对于视网膜显示器,它需要设置为2.0,否则该层仅以半分辨率显示。

cell.layer.rasterizationScale=[[UIScreen mainScreen] scale];

答案 1 :(得分:3)

我会移除setShouldRasterizesetShadowOffsetsetShadowPath。它没有它们就可以正常工作。