Я получаю visibleRect из UIImageView внутри метода, который называется несколько раз, чтобы переместить это представление вправо. Как только он частично выходит из экрана, я ожидаю, что visibleRect станет меньше. Но это не так.Почему метод visibleRect CALayer дает мне всегда ту же ширину для моего UIImageView, даже если я перемещаю его наполовину из экрана?
-(IBAction)moveToRight:(id)sender {
CGRect frameRect = myUIImageView.frame; //that's an image I use in background of other views
CALayer *myLayer = [myUIImageView layer];
CGRect visRect = [myLayer visibleRect];
NSLog(@"%f, %f", visRect.origin.x, visRect.size.width); //width is always 300.0
CGPoint rectPoint = frameRect.origin;
CGFloat newXPos = rectPoint.x + 10.5f;
myUIImageView.frame = CGRectMake(newXPos, 0.0f, myUIImageView.frame.size.width, myUIImageView.frame.size.height);
}
Есть ли что-то особенное, о чем я должен думать, когда мне нужен истинный видимый прямоугольник вида? На самом деле я думал, что это будет всегда обрезано супервидом, так что метод возвращает истинные размеры видимого прямоугольника.
Но когда я перемещаю UIImageView шаг за шагом вправо, он остается на уровне 300,0. Даже если часть его выходит из окна.
Спасибо. Интересно, почему Apple не упоминала об этом сразу, когда они говорят, что этот классный метод настолько полезен;) – Thanks
У меня такая же мысль о каждом дне с яблоком;) – Alex