English 中文(简体)
UITableCellView顶部的影子
原标题:Shadow at the top of a Cell UITableCellView

我想知道,是否有任何人知道如何在像屏幕上那样的事件中取得像那种沙洞效应。 对我来说,它喜欢产生影子效应,因为上面囚室底部和以下囚室顶部有一个阴影。

我可以使用以下代码从上面的牢房中创建,但可以说明如何在地下室做,因为它没有显示这些囚室是按Z-index的相反顺序进行的。

self.layer.shadowOffset = CGSizeMake(0, 2);
self.layer.shadowColor = [[UIColor blackColor] CGColor];
self.layer.shadowRadius = 2;
self.layer.shadowOpacity = 0.5;

CGFloat top = self.layer.bounds.origin.y;
CGFloat left = self.layer.bounds.origin.x;
CGFloat width = self.layer.bounds.size.width;

CGRect shadowFrame = CGRectMake(left, top, width, 44);
CGPathRef shadowPath = [UIBezierPath bezierPathWithRect:shadowFrame].CGPath;
self.layer.shadowPath = shadowPath;

任何建议都受到高度赞赏。

Things http://www.purplesmash.com/images/Things.jpg

最佳回答

仅仅在用核心分辨率(确切地说,低空部分包括你的显眼镜)为背景制造了阴影——这将节省你们的业绩。

UPDATE:
I ve tried this inside my cell drawRect: method

// Creating path which will hold our hollow rectangle
CGMutablePathRef path = CGPathCreateMutable();
CGPathAddRect(path, NULL, CGRectMake(-8.0f, -8.0f, 336.0f, 96.0f));
CGPathAddRect(path, NULL, CGRectMake(-5.0f, 0.0f, 330.0f, 80.0f));

// Saving current graphics context state
CGContextSaveGState(context);

// Configuring shadow
CGContextSetShadowWithColor(context, CGSizeMake(0.0f, 0.0f), 6.0f, 
                            [[UIColor blackColor] CGColor]);

// Adding our path
CGContextAddPath(context, path);  

// Configure hollow rectangle fill color
CGContextSetRGBFillColor(context, 1.0, 1.0, 1.0, 1.0);

// Fill rectangle and keep hollow part transparent
CGContextEOFillPath(context);

// Restore graphics context
CGContextRestoreGState(context);

当然,附加的改进将是在以下条件下进行的:CGMutablePathRef path,有些地方在初始阶段,或者在这种方法中通过if(path=NUL)。 科罗人也可以保留。 如果这应该是你的细胞更新的最后一行,那么,或许你们不需要挽救环境。

问题回答

You probably need to do this by drawing the shadows as part of the checked cell instead of setting the shadow properties on the surrounding cells.

I d do it by Additional one or two CAGradientLayers as children of theecked cell scode>contentView.layer .

我已根据月球建议对此进行了编辑。 我把该法典引入一种方法,在我称之为这种方法的囚室需要时添加InnerTopShadow。 我增加了另一种方法,增加了InnerBottomShadow,将其放在底层的阴影中。

我把这些方法用在法理中,如果我想改变我所说的方法的话:

[cell setNeedsDisplay];

这样,我就可以在不做像样的事情的情况下,对牢房的状况进行gle弄。

[self.tableView reloadData];

正如这些方法表明,我有外部影子方法,给第一个和最后的囚室蒙上阴影,但这又是一个问题,并多次得到答复。 现在,我完全怀着想。 因此,感谢罗伯恩和月球。

-(void)addInnerBottomShadow
{   
    CGContextRef context = UIGraphicsGetCurrentContext();

    // Creating path which will hold our hollow rectangle
    CGMutablePathRef path = CGPathCreateMutable();

    CGPathAddRect(path, NULL, CGRectMake(0, 44, 480, 80));
    CGPathAddRect(path, NULL, CGRectMake(0, 54, 480, 96));

    // Saving current graphics context state
    CGContextSaveGState(context);

    // Configuring shadow
    CGContextSetShadowWithColor(context, CGSizeMake(0.0f, 0.0f), 6.0f, [[UIColor blackColor] CGColor]);

    // Adding our path
    CGContextAddPath(context, path);  

    // Configure hollow rectangle fill color
    CGContextSetRGBFillColor(context, 1.0, 1.0, 1.0, 1.0);

    // Fill rectangle and keep hollow part transparent
    CGContextEOFillPath(context);
    CGContextClipToRect(context, self.bounds);

    // Restore graphics context
    CGContextRestoreGState(context);
}

-(void)addInnerTopShadow
{
    CGContextRef context = UIGraphicsGetCurrentContext();

    CGMutablePathRef path = CGPathCreateMutable();
    CGPathAddRect(path, NULL, CGRectMake(-8.0f, -8.0f, 336.0f, 96.0f));
    CGPathAddRect(path, NULL, CGRectMake(-5.0f, 0.0f, 330.0f, 80.0f));

    // Saving current graphics context state
    CGContextSaveGState(context);

    // Configuring shadow
    CGContextSetShadowWithColor(context, CGSizeMake(0.0f, 0.0f), 7.0f, [[UIColor blackColor] CGColor]);

    // Adding our path
    CGContextAddPath(context, path);  

    // Configure hollow rectangle fill color
    CGContextSetRGBFillColor(context, 1.0, 1.0, 1.0, 1.0);

    // Fill rectangle and keep hollow part transparent
    CGContextEOFillPath(context);
    CGContextClipToRect(context, self.bounds);

    // Restore graphics context
    CGContextRestoreGState(context);
}




相关问题
Code sign Error

I have created a new iPhone application.I have two mach machines. I have created the certificate for running application in iPhone in one mac. Can I use the other mac for running the application in ...

ABPersonViewController Usage for displaying contact

Created a View based Project and added a contact to the AddressBook using ABAddressBookRef,ABRecordRef now i wanted to display the added contact ABPersonViewController is the method but how to use in ...

将音频Clips从Peter改为服务器

我不禁要问,那里是否有任何实例表明从Peit向服务器发送音响。 I m不关心电话或SIP风格的解决办法,只是一个简单的袖珍流程......

• 如何将搜查线重新定位?

我正试图把图像放在搜索条左边。 但是,问题始于这里,搜索条线不能重新布署。

热门标签