UITouch触摸事件
- 主要为三个方法
1.-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{2.3. UITouch *touch = [touches anyObject];4. CGPoint point = [touch locationInView:self];5. start = point;6. end = point;7.8.}9.10.-(void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event{11.12. UITouch *touch = [touches anyObject];13. CGPoint point = [touch locationInView:self];14. end = point;15.16. [self setNeedsDisplay];17.}18.19.-(void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event{20.21. UITouch *touch = [touches anyObject];22. CGPoint point = [touch locationInView:self];23. end = point;24.25. [self setNeedsDisplay];26.27.28.}29.
- 示例
1.#import "myView.h"2.3.@interface myView ()4.{5. CGPoint start;6. CGPoint end;7.}8.@end9.10.11.@implementation myView12.13.-(instancetype)initWithFrame:(CGRect)frame{14. if (self = [super initWithFrame:frame]) {15. self.backgroundColor = [UIColor whiteColor];16. }17. return self;18.}19.20.21.22.-(void)drawRect:(CGRect)rect{23.24. if (start.x != end.x && start.y != end.y) {25.26. CGFloat w = fabs(end.x - start.x);27. CGFloat h = fabs(end.y - start.y);28.29. CGFloat x = end.x < start.x ? end.x : start.x;30. CGFloat y = end.y < start.y ? end.y : start.y;31.32. //画圆33. UIBezierPath *path = [UIBezierPath bezierPathWithOvalInRect:34. CGRectMake(x, y, w, h)];35.36. //画方37.// UIBezierPath *path = [UIBezierPath bezierPathWithRect:CGRectMake(x, y, w, h)];38.39. [[UIColor redColor] setStroke];40. [path stroke];41. }42.43.}44.45.-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{46.47. UITouch *touch = [touches anyObject];48. CGPoint point = [touch locationInView:self];49. start = point;50. end = point;51.52.}53.54.-(void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event{55.56. UITouch *touch = [touches anyObject];57. CGPoint point = [touch locationInView:self];58. end = point;59.60. [self setNeedsDisplay];61.}62.63.-(void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event{64.65. UITouch *touch = [touches anyObject];66. CGPoint point = [touch locationInView:self];67. end = point;68.69. [self setNeedsDisplay];70.71.72.}73.74.75.76.77.@end78.
时间: 2024-10-11 18:29:45