मुझे कुछ कोड के साथ कुछ प्रदर्शन समस्याएं हैं जिन्हें मैंने स्पर्श का उपयोग करके कैलियर का आकार बदलने के लिए लिखा है। यह ठीक काम करता है लेकिन एनीमेशन काफी खुश है और स्पर्श स्थान के पीछे है।कैलियर का आकार धीमा है
CGPoint startPoint;
CALayer *select;
- (CGRect)rectPoint:(CGPoint)p1 toPoint:(CGPoint)p2 {
CGFloat x, y, w, h;
if (p1.x < p2.x) {
x = p1.x;
w = p2.x - p1.x;
} else {
x = p2.x;
w = p1.x - p2.x;
}
if (p1.y < p2.y) {
y = p1.y;
h = p2.y - p1.y;
} else {
y = p2.y;
h = p1.y - p2.y;
}
return CGRectMake(x, y, w, h);
}
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
UITouch *t1 = [[[event allTouches]allObjects]objectAtIndex:0];
CGPoint loc = [t1 locationInView:self];
startPoint = loc;
lastPoint = CGPointMake(loc.x + 5, loc.y + 5);
select = [CALayer layer];
select.backgroundColor = [[UIColor blackColor]CGColor];
select.frame = CGRectMake(startPoint.x, startPoint.y, 5, 5);
[self.layer addSublayer:select];
}
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event {
UITouch *t1 = [[[event allTouches]allObjects]objectAtIndex:0];
CGPoint loc = [t1 locationInView:self];
select.bounds = [self rectPoint:startPoint toPoint:loc];
}
क्या यह प्राप्त करने का एक बेहतर तरीका है?
मुझे कम से कम एक दिन ले लिया होगा ताकि स्वतंत्र रूप से पता चल सके, धन्यवाद स्टैक + jrturton। –