TouchesBegan with bringSubviewToFront



我正在为Gestrue Recognizer工作,有许多UIView用于在视图中旋转,捏合和平移操作。我的问题是,当我触摸时,如何使我的一个UIView带来SubviewToFront,例如,就像我的照片一样,我希望绿色的在我触摸它时带到前面。(所以蓝色变成绿色的后面(

每个 UIView 都是从我的 NoteView 类初始化的

NoteView * noteView = [[NoteView alloc]initWithFrame:CGRectMake(50, 50, 150, 150)];
[self setGesture:noteView];
[self.view addSubview:noteView];

触摸开始我像这样工作

-(void) touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
self.note = [NoteView new];
UITouch * touch = [touches anyObject];
if (touch.view == self.note) {
    [self.view bringSubviewToFront:self.note];
}}

感谢您的帮助!!我解决了我的问题,也许有人也会有同样的问题,所以我更新了我的答案,我使用 user3589771 的链接来弄清楚它。

像下面的代码

-(void) touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
  CGPoint location = [[touches anyObject] locationInView:self.view];
  CGRect fingerRect = CGRectMake(location.x-5, location.y-5, 10, 10);
  for(UIView *view in self.view.subviews){
    CGRect subviewFrame = view.frame;
    if(CGRectIntersectsRect(fingerRect, subviewFrame)){
        NSLog(@"Yeah !, i found it %@",view);
        [self.view bringSubviewToFront:view];
    }
}}

但实际上我并没有放弃理解

for(UIView *view in self.view.subviews){
    CGRect subviewFrame = view.frame;
    if(CGRectIntersectsRect(fingerRect, subviewFrame)){
    }}

顺便说一句,如果有人能对这个新问题给我一个评论,那就太好了。

相关内容

  • 没有找到相关文章

最新更新