あなたが好きなので、UIScrollViewののcontentOffsetとcontentSizeプロパティを使用して、それを計算する必要があります。
CGRect visibleRect;
visibleRect.origin = scrollView.contentOffset;
visibleRect.size = scrollView.contentSize;
あなたはその後、健全性テストのためにそれをログに記録することができます
NSLog(@"Visible rect: %@", NSStringFromCGRect(visibleRect));
アカウントへのズーミング(この場合既にcontentSizeプロパティによって行われていない場合)、各座標をzoomScaleで除算する必要があります。または、パフォーマンスを向上させるために1.0/zoomScaleを掛けます。
その他:math.hからisless()、isgreater()、isequal()などを使用しています。これらはおそらく '順序付けられていない'浮動小数点比較結果やその他の奇妙なものについて正しいことをするためです。&素晴らしいアーキテクチャ特有のFP症例。
編集:あなたはvisibleRect.size
を計算するときbounds.size
の代わりcontentSize
を使用する必要があります。
CGRect visibleRect;
visibleRect.origin = scrollView.contentOffset;
visibleRect.size = scrollView.bounds.size;
float theScale = 1.0/scale;
visibleRect.origin.x *= theScale;
visibleRect.origin.y *= theScale;
visibleRect.size.width *= theScale;
visibleRect.size.height *= theScale;
主な違いは、サイズのことです。自分の質問、ほとんどがかなりトリックを行うが、私は私の答えのための基盤を与えなかったジム・Doveyの答えのおかげで答える
あなたの質問自体が私の問題を解決しました。私はscrollviewの目に見えるrectを探していた! +1してください。 –