gpt4 book ai didi

iphone - 在 ipad 应用程序中绘制签名并将其转换为图像

转载 作者:行者123 更新时间:2023-11-28 20:14:43 26 4
gpt4 key购买 nike

我在 ipad 应用程序中绘制签名它工作正常但问题是当它保存图像时它也保存了 signatureView 的边框我只想保存绘图区域而不是完整的 signatureView 这是我的代码

  signatureView=[[UIView alloc] initWithFrame:CGRectMake(100,100,800,500)];
signatureView.backgroundColor=[UIColor colorWithRed:242.0/255.f green:242/255.0f blue:242/255.0f alpha:1];


signatureView.layer.borderWidth =4;
signatureView.layer.borderColor = [UIColor colorWithRed:23.0/255.0f green:190/255.0f blue:210/255.0f alpha:1].CGColor;
signatureView.layer.cornerRadius=30;




[self.view addSubview:signatureView];



UIButton*OkButton = [UIButton buttonWithType:UIButtonTypeCustom];
[OkButton setFrame:CGRectMake(320,448,118,49)];
[OkButton setTitle:@"OK" forState:UIControlStateNormal];

[OkButton setImage:[UIImage imageNamed:@"okT.png"] forState:UIControlStateNormal];


[OkButton addTarget:self action:@selector(onOKButtonClick) forControlEvents:UIControlEventTouchUpInside];
[signatureView addSubview:OkButton];

UILabel*textLabel=[[UILabel alloc] initWithFrame:CGRectMake(20,6,300,50)];

textLabel.font=[UIFont fontWithName:@"Helvetica-Bold" size:16];
textLabel.text=@"Use the touchscreen to sign here";
textLabel.backgroundColor=[UIColor clearColor];
textLabel.textColor=[UIColor grayColor];
[signatureView addSubview:textLabel];


drawScreen=[[MyLineDrawingView alloc]initWithFrame:CGRectMake(10,50,780,400)];
[signatureView addSubview:drawScreen];
[drawScreen release];


//MyLineDrwaingView


@interface MyLineDrawingView : UIView {

UIBezierPath *myPath;
UIColor *brushPattern;
}

@end


#import "MyLineDrawingView.h"


@implementation MyLineDrawingView

- (id)initWithFrame:(CGRect)frame
{

self = [super initWithFrame:frame];
if (self) {
// Initialization code

self.backgroundColor=[UIColor whiteColor];
myPath=[[UIBezierPath alloc]init];
myPath.lineCapStyle=kCGLineCapRound;
myPath.miterLimit=0;
myPath.lineWidth=10;
//brushPattern=[UIColor redColor];
brushPattern=[UIColor blackColor];

}
return self;
}


// Only override drawRect: if you perform custom drawing.
// An empty implementation adversely affects performance during animation.
- (void)drawRect:(CGRect)rect
{

[brushPattern setStroke];
[myPath strokeWithBlendMode:kCGBlendModeNormal alpha:1.0];
}

#pragma mark - Touch Methods

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{

UITouch *mytouch=[[touches allObjects] objectAtIndex:0];
[myPath moveToPoint:[mytouch locationInView:self]];

}

-(void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event

{

UITouch *mytouch=[[touches allObjects] objectAtIndex:0];
[myPath addLineToPoint:[mytouch locationInView:self]];
[self setNeedsDisplay];

}


-(void)onOKButtonClick {
CGRect rect = [drawScreen bounds]; //use your signature view's Rect means Frame;
UIGraphicsBeginImageContext(rect.size);
CGContextRef context = UIGraphicsGetCurrentContext();
[signatureView.layer renderInContext:context]; //this line is also important for you
UIImage *img = UIGraphicsGetImageFromCurrentImageContext();
signImageView.image = img;
}

最佳答案

我已经在我的代码中实现了它对我的工作:

.h文件添加UIGestureRecognizerDelegate

.m 字段

-(void)scrollGesture:(UIGestureRecognizer *)sender
{

CGPoint touchLocation = [sender locationInView:scrollView];

NSLog(@"%d %d %d %d",touchLocation.y > signatureViewOne.frame.origin.y,touchLocation.y < signatureViewOne.frame.origin.y+80,touchLocation.x > 3, touchLocation.x < 308);
if ((touchLocation.y > signatureViewOne.frame.origin.y && touchLocation.y < signatureViewOne.frame.origin.y+80) &&(touchLocation.x > 3 && touchLocation.x < 308))
{
NSLog(@"Signone found");
scrollView.scrollEnabled = NO;

}
else

if ((touchLocation.y > signatureViewTwo.frame.origin.y && touchLocation.y < signatureViewTwo.frame.origin.y+80) &&(touchLocation.x > 3 && touchLocation.x < 308))
{
NSLog(@"SignTwo found");
scrollView.scrollEnabled = NO;

}
else
{
NSLog(@"not found");
scrollView.scrollEnabled = YES;
sender.enabled = YES;
}


}

关于iphone - 在 ipad 应用程序中绘制签名并将其转换为图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18503611/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com