我正在开发一个自定义进度条,它会根据百分比值显示图像的一部分。我的想法是有两个图像,原始和b& w版本。我正在显示b& w,并在此基础上根据百分比裁剪原始图像。工作得很好但是从上到下。
我想问一下,有什么方法可以让原始图像成为"成长"从下到上?
以下是我的代码示例:
UIImageView *imgDefViewGray = [[UIImageView alloc] initWithFrame:CGRectMake(170, 85, 60, 60)];
imgDefViewGray.image = [UIImage imageNamed:@"castle-gray.png"];
[self addSubview:imgDefViewGray];
UIImageView *imgDefView = [[UIImageView alloc] initWithFrame:CGRectMake(170, 85, 60, 60)];
imgDefView.image = [UIImage imageNamed:@"castle.png"];
CGRect rect = CGRectMake(0, 0 , 60, **50**);
CGImageRef imageRef = CGImageCreateWithImageInRect([imgDefView.image CGImage], rect);
UIImage *img = [UIImage imageWithCGImage:imageRef];
imgDefView = [[UIImageView alloc] initWithFrame:CGRectMake(170, 85, 60, **50**)];
imgDefView.image = img;
[self addSubview:imgDefView];
因此,通过更改粗体(双星号)上的值,我已经实现了尽可能多地裁剪原始图像,但方向顶部 - >底部。我希望它在底部 - >顶部。
提前致谢
答案 0 :(得分:1)
经过多次尝试,我已经想出得到我想要的结果。以下是我解决问题的方法。我希望未来任何会面对或想要相同的人都会发现它有用。
UIImageView *imgDefViewGray = [[UIImageView alloc] initWithFrame:CGRectMake(170, 85, 60, 60)];
imgDefViewGray.image = [UIImage imageNamed:@"castle-gray.png"];//60x60 b&w image
UIImage originalImg = [UIImage imageNamed:@"castle.png"];//60x60 original image
CGRect rect = CGRectMake(0, originalImg.size.height-scaleDefence), 60 , scaleDefence);//scaleDefence is just a float variable that converts current percentage value to px.
CGImageRef imageRef = CGImageCreateWithImageInRect([originalImg CGImage], rect);
UIImage *croppedImg = [UIImage imageWithCGImage:imageRef];
UIImageView *imgDefView = [[UIImageView alloc] initWithFrame:CGRectMake(0, originalImg.size.height-scaleDefence, 60, scaleDefence)];//dynamically changing y-axis depending on cropped image's height.
imgDefView.image = croppedImg;
[imgDefViewGray addSubview:imgDefView];//make original image part of b&w
[self addSubview:imgDefViewGray];//finally add the result to the view