2010-04-26 12 views
27

In -drawRect: Sağlanmış rect'in başka birRect ile kesişip geçmediğini kontrol etmek istiyorum.İki CGRect'in kesişip bitmediğini nasıl anlarsınız?

Eğer masanın üzerinde iki kağıt varsa ve bunlardan biri diğer ikisinden biri tamamen kapsar:

yüzden söylemek istediğim budur bu geometri matematik şeylerde iyi ve özellikle ingilizce de değilim ya da sadece küçük bir bölüm, bu rectsIntersect = YES.

rect ve anotherRect için nasıl denetlenir?

cevap

60

Kullanım bool CGRectIntersectsRect (CGRect rect1,CGRect rect2);

Swift 3:

public func intersects(_ rect2: CGRect) -> Bool 

Örnek: rect1.intersects(rect2)

+1

çarpışması bahsetmek istemez bir blog yayını yapmak olacaktır: http://blogs.oreilly.com/iphone/2008/12/useful-core-graphics -functions.html –

+0

Teşekkürler Brandon, doğru imzası var (bunu yapmadım) –

+1

Sorun değil, sadece birinin doğru adla girip cevabını almasını istemiyordum. :) –

1

deneyin bu kullanmak .. ImageView animasyon yaparken sen bu kadar gerçek çerçevesini almak:

[[obstacle1.layer presentationLayer] frame]; 

Yani, kolayca İşte iki imageview

if (CGRectIntersectsRect([[obstacle1.layer presentationLayer] frame], [[bgImageView.layer 
    presentationLayer] frame])) 
{ 

    NSLog(@"Collision 1"); 

} 
İlgili konular