Различать два ImageViews - PullRequest
       5

Различать два ImageViews

1 голос
/ 07 октября 2011

У меня есть два imageViews imageView1 и imageView2.Я дал gestrecognizer для перемещения этих обоих изображений.Теперь проблема заключается в том, что, когда я перемещаю первый просмотр изображений около второго просмотра изображений, отображается только второй просмотр изображений.Но когда я помещаю первый imageView на другое изображение, первый imageView должен отображаться на втором imageView, чего не происходит. Может ли какое-либо тело сказать мне, как первый imageView может получить представление поверх другого imageView.

Ответы [ 2 ]

2 голосов
/ 07 октября 2011

Вы можете использовать UIView метод bringSubviewToFront: и передать UIImageView, который вы хотите отобразить сверху.

1 голос
/ 07 октября 2011

Почему вы не используете нечто подобное для перетаскивания ваших UIImageViews?

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.

    self.view.backgroundColor = [UIColor yellowColor];

    test1 = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 100, 100)];
    test1.backgroundColor = [UIColor whiteColor];
    test1.userInteractionEnabled = YES;
    test1.clipToBounds = YES;
    [self.view addSubview:test1];

    test2 = [[UIImageView alloc] initWithFrame:CGRectMake(400, 400, 100, 100)];
    test2.backgroundColor = [UIColor whiteColor];
    test2.userInteractionEnabled = YES;
    test2.clipToBounds = YES;
    [self.view addSubview:test2];
}


CGPoint startLocation;
float diffX;
float diffY;

-(void) touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
    UITouch *touch = [[event allTouches] anyObject];

    if( [touch view] == test1)
    {
        startLocation = [touch locationInView:self.view];
        [self.view bringSubviewToFront:test1];
    }

    if( [touch view] == test2)
    {
        startLocation = [touch locationInView:self.view];
        [self.view bringSubviewToFront:test2];
    }
}


- (void) touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event{

    UITouch *touch = [[event allTouches] anyObject];

    if( [touch view] == test1)
    {
        CGPoint location = [touch locationInView:self.view];
        diffX = location.x - startLocation.x;
        diffY = location.y - startLocation.y;
        test1.frame = CGRectMake(test1.frame.origin.x + diffX, test1.frame.origin.y + diffY, test1.frame.size.width, test1.frame.size.height);
        startLocation = test1.frame.origin;
    }

    if( [touch view] == test2)
    {
        CGPoint location = [touch locationInView:self.view];
        diffX = location.x - startLocation.x;
        diffY = location.y - startLocation.y;
        test2.frame = CGRectMake(test2.frame.origin.x + diffX, test2.frame.origin.y + diffY, test2.frame.size.width, test2.frame.size.height);
        startLocation = test2.frame.origin;
    }

}

// --- EDIT --- // Добавлено: cliptobounds в viewdidload

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...