#import "RootViewController.h"
#import "RootView.h"
@interface RootViewController ()
@property (nonatomic, retain) RootView *rootView;
@end
@implementation RootViewController
- (void)loadView
{
self.rootView = [[RootView alloc] initWithFrame:[UIScreen mainScreen].bounds];
self.view = _rootView;
}
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view.
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
NSLog(@"%d %s", __LINE__, __FUNCTION__);
}
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
{
NSLog(@"%d %s", __LINE__, __FUNCTION__);
}
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
{
NSLog(@"%d %s", __LINE__, __FUNCTION__);
}
- (void)touchesCancelled:(NSSet *)touches withEvent:(UIEvent *)event
{
NSLog(@"%d %s", __LINE__, __FUNCTION__);
}
- (void)dealloc
{
[_rootView release];
[super dealloc];
}
@end
#import "RootView.h"
#import "TouchView.h"
@implementation RootView
- (instancetype)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
self.backgroundColor = [UIColor cyanColor];
[self addAllViews];
}
return self;
}
- (void)addAllViews
{
TouchView *touchView1 = [[TouchView alloc] initWithFrame:CGRectMake(100, 100, 200, 200)];
touchView1.backgroundColor = [UIColor whiteColor];
[self addSubview:touchView1];
[touchView1 release];
}
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
NSLog(@"%d %s", __LINE__, __FUNCTION__);
}
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
{
NSLog(@"%d %s", __LINE__, __FUNCTION__);
}
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
{
NSLog(@"%d %s", __LINE__, __FUNCTION__);
}
- (void)touchesCancelled:(NSSet *)touches withEvent:(UIEvent *)event
{
NSLog(@"%d %s", __LINE__, __FUNCTION__);
}
@end
#import "TouchView.h"
@interface TouchView ()
@property (nonatomic, assign) CGPoint startPoint;
@end
@implementation TouchView
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
NSLog(@"%d %s", __LINE__, __FUNCTION__);
CGFloat X = self.frame.size.width;
X -= 10;
CGFloat Y = self.frame.size.height;
Y -= 10;
CGFloat XX = self.frame.origin.x;
XX += 5;
CGFloat YY = self.frame.origin.y;
YY += 5;
self.frame = CGRectMake(XX, YY, X, Y);
UITouch *touch = [touches anyObject];
_startPoint = [touch locationInView:self];
}
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
{
self.backgroundColor = [UIColor colorWithRed:arc4random() % 256 / 255.0 green:arc4random() % 256 / 255.0 blue:arc4random() % 256 / 255.0 alpha:1.0];
NSLog(@"%d %s", __LINE__, __FUNCTION__);
UITouch *touch = [touches anyObject];
CGPoint currentPoint = [touch locationInView:self];
CGFloat offsetX = currentPoint.x - _startPoint.x;
CGFloat offsetY = currentPoint.y - _startPoint.y;
CGPoint newcenter = self.center;
newcenter.x += offsetX;
newcenter.y += offsetY;
self.center = newcenter;
CGFloat X = self.frame.size.width;
X += 10;
CGFloat Y = self.frame.size.height;
Y += 10;
CGFloat XX = self.frame.origin.x;
XX -= 5;
CGFloat YY = self.frame.origin.y;
YY -= 5;
self.frame = CGRectMake(XX, YY, X, Y);
}
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
{
NSLog(@"%d %s", __LINE__, __FUNCTION__);
}
- (void)touchesCancelled:(NSSet *)touches withEvent:(UIEvent *)event
{
NSLog(@"%d %s", __LINE__, __FUNCTION__);
}
@end