1

私は、ビューでの回転、ピンチ、パン アクションのための多くの UIView を備えた Gestrue Recognizer で作業しています。私の質問は、たとえば、私の写真のように、触れたときにUIViewのbringSubviewToFrontの1つを作成する方法です。触れたときに緑色のものを前面に表示します。(青が緑の後ろに変わる)

各 UIView は私の NoteView クラスから初期化されています

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

TouchsBegan 私はこのように働いています

-(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];
}}
4

1 に答える 1

0

助けてくれてありがとう!! 私は自分の質問を解決します。誰かが同じ質問をするかもしれないので、回答を更新します。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)){

    }}

ところで、誰かがこの新しい質問についてコメントをくれれば、それは素晴らしいことです。

于 2017-06-23T05:26:19.290 に答える