其实我有一个滚动视图。我正在使用30个按钮。我的要求是什么,我需要重新排列按钮。就像,当我触摸任何按钮时,应该通过触摸选择它。如果我们在滚动视图中移动,它应该随着我们的触摸移动。在我结束触摸后,应该交换按钮。任何人都可以帮助我.........
答案 0 :(得分:0)
你可以做这个行为,但是有很多工作要做。你需要下一个:
1.创建将成为按钮的UIControl子类
2.覆盖所有接触*方法。
3.实现标准uicontrol行为+移动行为的支持。
#pragma mark -
#pragma mark Touches delegate methods
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
UITouch *touch = [touches anyObject];
[self performSelector:@selector(delayedTouchBeging:) withObject:touch afterDelay:0.15];
[super touchesBegan:touches withEvent:event];
}
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event {
UITouch *touch = [touches anyObject];
if ( dragging ) {
// move your view in new position here
} else {
[super touchesMoved:touches withEvent:event];
}
}
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {
if ( dragging ) {
// Do other stuff if you need
} else {
[super touchesEnded:touches withEvent:event];
}
dragging = NO;
[NSObject cancelPreviousPerformRequestsWithTarget:self];
}
- (void)touchesCancelled:(NSSet *)touches withEvent:(UIEvent *)event {
[self touchesEnded:touches withEvent:event];
}
- (void) delayedTouchBeging:(UITouch*) touch {
dragging = YES;
[self cancelTrackingWithEvent:nil];
// Do here stuff about begin moving (animation, etc)
}
答案 1 :(得分:0)
您可能希望了解他们如何将“启动器”代码作为免费提供的three20代码目录的一部分。他们做的就是这样(并模仿iPhone应用程序视图,您可以在其中移动应用程序或删除它们)。