On Dec 8, 2009, at 12:33 pm, mmalc Crawford wrote:
Get the logic right...
> - (void)setUpTouchHandling {
>
> touchToLabelMapping = CFDictionaryCreateMutable (kCFAllocatorDefault, 5,
> &kCFTypeDictionaryKeyCallBacks, &kCFTypeDictionaryValueCallBacks);
> availableLabels = [[NSMutableArray alloc] initWithObjects:touchLabel1,
> touchLabel2, touchLabel3, touchLabel4, touchLabel5, nil];
> }
>
- (void)setUpTouchHandling {
touchToLabelMapping = CFDictionaryCreateMutable (kCFAllocatorDefault, 5,
&kCFTypeDictionaryKeyCallBacks, &kCFTypeDictionaryValueCallBacks);
availableLabels = [[NSMutableArray alloc] initWithObjects:touchLabel1,
touchLabel2, touchLabel3, touchLabel4, touchLabel5, nil];
setUp = YES;
}
... and improve the user experience accordingly:
> - (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {
>
> for (UITouch *touch in touches) {
> if (touch.view == self) {
> UILabel *label = (UILabel
> *)CFDictionaryGetValue(touchToLabelMapping, touch);
> label.text = @"{0, 0}";
> CFDictionaryRemoveValue (touchToLabelMapping, touch);
> [availableLabels addObject:label];
> }
> }
> }
>
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {
for (UITouch *touch in touches) {
if (touch.view == self) {
UILabel *label = (UILabel
*)CFDictionaryGetValue(touchToLabelMapping, touch);
label.text = @"{0, 0}";
CFDictionaryRemoveValue (touchToLabelMapping, touch);
[availableLabels insertObject:label atIndex:0];
}
}
}
(I'm using setUpTouchHandling so that this will work however you configure your
view or view controller -- ideally you choose a more appropriate initialisation
locus.)
mmalc
_______________________________________________
Cocoa-dev mailing list ([email protected])
Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com
This email sent to [email protected]