【发布时间】:2014-12-07 14:06:47
【问题描述】:
我一直在寻找几个小时......不用说,我在编程方面相当新。 我的目标是以编程方式显示子视图并通过点击它来删除它。
已经开始工作:显示子视图并通过点击视图将其删除(代码如下)。
不起作用 - 我尝试什么:通过专门点击子视图来删除子视图。
感谢您的帮助!
我的 .h 文件:
#import <UIKit/UIKit.h>
@interface ViewController : UIViewController {
UIImageView *canvas;
UIImageView *square;
}
@property (nonatomic, strong) UIImageView *canvas;
@property (nonatomic, strong) UIImageView *square;
@property (nonatomic) NSUInteger numberOfTouchesRequired;
- (void)handleSingleTap: (UITapGestureRecognizer *)singleTapGestureRecognizer;
@end
我的 .m 文件:
#import "ViewController.h"
@interface ViewController ()
@end
@implementation ViewController
@synthesize canvas;
@synthesize square;
- (void)handleSingleTap: (UITapGestureRecognizer *)singleTapGestureRecognizer {
NSLog(@"tapGesture");
[square removeFromSuperview];
}
- (void)loadView {
canvas = [[UIImageView alloc] initWithFrame: [[UIScreen mainScreen] applicationFrame]];
[canvas setImage:[UIImage imageNamed:@"canvas.png"]];
self.view = canvas;
square = [[UIImageView alloc] initWithFrame:CGRectMake(170, 320, 40, 40)];
[square setImage:[UIImage imageNamed:@"square.png"]];
[self.view setUserInteractionEnabled:YES];
[canvas addSubview:square];
NSLog(@"square");
}
- (void)viewDidLoad {
[super viewDidLoad];
UITapGestureRecognizer *singleTapGestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleSingleTap:)];
NSLog(@"initialize");
singleTapGestureRecognizer.numberOfTapsRequired = 1;
NSLog(@"number of taps");
[self.view addGestureRecognizer:singleTapGestureRecognizer];
NSLog(@"square gestureRecognizer");
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
@end
【问题讨论】:
-
好.. 对我来说最简单的方法是将 UIButton(与子视图大小相同)放在此子视图上,并在此按钮的 IBAction 中调用删除操作...我讨厌点击手势...
标签: ios objective-c iphone uiview uigesturerecognizer