我想显示TextView,我想在TextView中键入文本。 每当我点击或触摸ImageView中的任何位置时。
这里实际上我为TextView设置了UITapGestureRecognizer。 一旦我在TextView中键入文本,它应该是自动保存的。
这里我设置了ImageView.After我设置了SubView,在SubView里面我设置了ImageView for Zoom。 现在我得到了缩放图像。确切地说,如果我单击或触摸Zoom ImageView中的任何位置,它应该显示TextView以及在TextView中输入文本后,它应该是自动保存的。
但每当我在Zoom ImageView中单击或触摸时,我都无法获取TextView。
我怎么能得到它?
低于.h部分
#import <UIKit/UIKit.h>
@interface GalleryCameraBusinessViewController : UIViewController<UIImagePickerControllerDelegate,UITextViewDelegate,UIGestureRecognizerDelegate>
{
UIView *dynamicView;
UIImageView *dynamicImage;
UITextView *textView;
UITextView * textviewtext;
}
- (IBAction)backtobusinesscard:(id)sender;
@property (strong, nonatomic) IBOutlet UISwitch *swit;
- (IBAction)switchaction:(id)sender;
@property (strong, nonatomic) IBOutlet UIImageView *pickingimageofcamgal;
@property (strong, nonatomic) IBOutlet UITextField *enternametextfld;
@end
.m Part
#import "GalleryCameraBusinessViewController.h"
@interface GalleryCameraBusinessViewController ()
@end
@implementation GalleryCameraBusinessViewController
@synthesize swit,pickingimageofcamgal,enternametextfld;
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view.
[self tapdetected];
}
- (void)viewWillAppear:(BOOL)animated
{
UITapGestureRecognizer *tapgesture =[[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(tapdetected)];
tapgesture.numberOfTouchesRequired =1;
tapgesture.numberOfTapsRequired =1;
pickingimageofcamgal.userInteractionEnabled =YES;
[pickingimageofcamgal addGestureRecognizer:tapgesture];
UITapGestureRecognizer *tapgesture1 =[[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(tapdetected1)];
tapgesture1.numberOfTapsRequired =1;
tapgesture1.numberOfTouchesRequired =1;
pickingimageofcamgal.userInteractionEnabled =YES;
[pickingimageofcamgal addGestureRecognizer:tapgesture1];
UITapGestureRecognizer *tapgesture2 =[[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(tapdetected2)];
tapgesture2.numberOfTouchesRequired =1;
tapgesture2.numberOfTapsRequired =1;
pickingimageofcamgal.userInteractionEnabled=YES;
[pickingimageofcamgal addGestureRecognizer:tapgesture2];
// UITapGestureRecognizer *tapgesture3 =[[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(tapdetected3)];
// tapgesture3.numberOfTapsRequired =1;
// dynamicView.userInteractionEnabled =YES;
// [dynamicView addGestureRecognizer:tapgesture3];
UITapGestureRecognizer *tapgesture4 = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(tapdetected4)];
tapgesture4.numberOfTapsRequired=1;
tapgesture4.numberOfTouchesRequired =1;
tapgesture4.delegate =self;
dynamicImage.userInteractionEnabled =YES;
[dynamicImage addGestureRecognizer:tapgesture4];
NSLog(@"textview is==%@",textviewtext);
}
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
- (IBAction)backtobusinesscard:(id)sender
{
[self.navigationController popViewControllerAnimated:YES];
}
-(void)tapdetected
{
UIImagePickerController*picker =[[UIImagePickerController alloc]init];
picker.sourceType =UIImagePickerControllerSourceTypePhotoLibrary;
picker.delegate =self;
[self presentViewController:picker animated:NO completion:nil];
}
-(void)tapdetected1
{
UIImagePickerController *picker =[[UIImagePickerController alloc]init];
picker.sourceType =UIImagePickerControllerSourceTypeCamera;
picker.delegate =self;
[self presentViewController:picker animated:NO completion:nil];
}
-(void)tapdetected2
{
//For dynamically creating view
dynamicView =[[UIView alloc]initWithFrame:CGRectMake(10, 70, 280, 300)];
dynamicView.backgroundColor=[UIColor whiteColor];
[self.view addSubview:dynamicView];
//For dynamically creating imageview
dynamicImage =[[UIImageView alloc]init];
dynamicImage.frame=CGRectMake(10, 60, 280, 300);
[dynamicImage setUserInteractionEnabled:YES];
dynamicImage.image =pickingimageofcamgal.image;
[dynamicView addSubview:dynamicImage];
}
//-(void)tapdetected3
//{
// textviewtext =[[UITextView alloc]initWithFrame:CGRectMake(20, 120, 120, 53)];
// textviewtext.backgroundColor=[UIColor redColor];
// [textviewtext setDelegate:self];
// textviewtext.text=@"Welcome to textview";
// [dynamicView addSubview:textviewtext]; +
//}
-(void)tapdetected4
{
textviewtext =[[UITextView alloc]initWithFrame:CGRectMake(0, 0, 50, 50)];
textviewtext.backgroundColor = [UIColor blueColor];
[textviewtext setDelegate:self];
textviewtext.text=@"HI";
[dynamicImage addSubview:textviewtext];
}
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{
pickingimageofcamgal.image =[info objectForKey:UIImagePickerControllerOriginalImage];
picker.delegate=self;
[picker dismissViewControllerAnimated:YES completion:nil];
}
- (void)imagePickerControllerDidCancel:(UIImagePickerController*)picker
{
[picker dismissViewControllerAnimated:YES completion:nil];
}
- (IBAction)switchaction:(id)sender
{
if(swit.isOn)
{
[self tapdetected];
}
else
{
[self tapdetected1];
}
}}
答案 0 :(得分:0)
实际上你需要修改一些行,因为你在分配动态视图之前创建了tapgesture4,这就是它显示为null的原因,现在你只需做一个简单的更改,只需将tapgesture4转换为tapdetected2方法现在检查,它确实适合你。
-(void)tapdetected2
{
//For dynamically creating view
dynamicView =[[UIView alloc]initWithFrame:CGRectMake(10, 70, 280, 300)];
dynamicView.backgroundColor=[UIColor whiteColor];
[self.view addSubview:dynamicView];
//For dynamically creating imageview
dynamicImage =[[UIImageView alloc]init];
dynamicImage.frame=CGRectMake(10, 60, 280, 300);
[dynamicImage setUserInteractionEnabled:YES];
dynamicImage.image =pickingimageofcamgal.image;
[dynamicView addSubview:dynamicImage];
UITapGestureRecognizer *tapgesture4 = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(tapdetected4)];
tapgesture4.numberOfTapsRequired=1;
tapgesture4.numberOfTouchesRequired =1;
tapgesture4.delegate =self;
dynamicImage.userInteractionEnabled =YES;
[dynamicImage addGestureRecognizer:tapgesture4];
NSLog(@"textview is==%@",textviewtext);
}