查看背景作为当前设置的背景图像?

时间:2013-12-18 18:49:09

标签: ios calayer

我正在开发一个应用程序,它为屏幕上显示的大多数视图提供了一个共同的背景,所以让我说我的应用程序有这个背景图像:

enter image description here

现在想象一下我添加了一个表格视图,我希望我的表格视图部分视图背景成为它应该在当前位置匹配的应用程序背景图像特定部分。我如何实现这种效果?我尝试将alpha设置为0但显然这是滚动我的表时会发生的事情:

我希望它看起来总是如此:

enter image description here

滚动时会发生什么:

enter image description here

我也尝试过设置背景图片图层的mask属性,但由于它只适用于一个视图图层,因此在这种情况下不适合做。

我知道我并没有很好地解释自己,但我希望你至少能理解我想要做的事情。

2 个答案:

答案 0 :(得分:0)

将tableView背景设置为clear Color并对tableView Cells执行相同操作。然后你必须隐藏分隔线。

 tableView.backgroundColor = [UIColor clearColor];

 //in your tableView cellForRowPath method
 cell.backgroundColor = [UIColor clearColor];
 cell.separatorStyle = UITableViewCellSeparatorStyleNone;

答案 1 :(得分:0)

您可以通过剪切所需图像的一部分然后将其设置为导航栏的背景来完成此操作。

以下是删除部分图片的类别:

<强>·H

#import <UIKit/UIKit.h>

@interface UIImage (Crop)

-(UIImage*)cropFromRect:(CGRect)fromRect;

@end

<强>的.m

#import "UIImage+Crop.h"

@implementation UIImage (Crop)

-(UIImage*)cropFromRect:(CGRect)fromRect
{
    fromRect = CGRectMake(fromRect.origin.x * self.scale,
                          fromRect.origin.y * self.scale,
                          fromRect.size.width * self.scale,
                          fromRect.size.height * self.scale);
    CGImageRef imageRef = CGImageCreateWithImageInRect(self.CGImage, fromRect);
    UIImage* crop = [UIImage imageWithCGImage:imageRef scale:self.scale orientation:self.imageOrientation];
    CGImageRelease(imageRef);
    return crop;
}

@end

然后在viewDidLoad

//Cut out part of image where nav bar sits
UIImage *navBG = [[UIImage imageNamed:@"cVyuX.png"] cropFromRect:CGRectMake(0, 20, 320, 44)];

//Set nav bar image
[[UINavigationBar appearance] setBackgroundImage:navBG forBarMetrics:UIBarMetricsDefault];

//Remove gray seperator
[[UINavigationBar appearance] setShadowImage:[[UIImage alloc] init]];

我能够产生这个:

enter image description here