2012-08-07 20 views
6

bir CGRect değişken başlatmak amacıyla CGRectMake() kullanarak bu alternatif gördük:CGRectMake alternatif

CGRect çerçeve (= CGRect) {0,0,10,10};

Soruma göre CGRect frame = (CGRect){0,0,10,10}; nasıl çalışır? Sahne arkasında neler oluyor? c-tarzı dizisi başlatıldı ediliyor gibi görünüyor ({x,y,w,h}) daha sonra bir CGRect yapı olarak dökme olarak hangi - Bu doğru mu? Eğer öyleyse, bir c stili dizi bir yapı olarak nasıl dökülür?

N.B. Yukarıdaki alternatifi CGRectMake()'a uygun kullanmanın uygun olup olmadığını sormuyorum, sadece neden/nasıl çalıştığını anlamak istiyorum.

+0

. Ancak, 0.0 ve 10.0 yerine 0 ve 10 kullandığınız konusunda kafam karıştı. 0 ve 10 tamsayı sabitleri olarak derlenecek ve als float/çift sabitleri 0.0 ve 10,0 olacaktı. Tehrefore Float'ı faydalı bir şey için yasal bir çerçeve olarak kullanabileceğinden şüpheliyim. CGRect CGPoint ve CGSize yapılmış sağlayan bir yapıdır. Her ikisi de iki CGFload üyesinden (CGPoint durumunda x ve y ve CGSize durumunda genişlik ve yükseklikten) yapılır. –

cevap

1

U böyle kullanabilir:

CGRect rect = CGRectFromString(@"{{0, 0}, {612, 892}}"); // it contents { CGPoint origin;CGSize size;}; 
NSLog(@"rect : %@",NSStringFromCGRect(rect)); 
1

Kontrol bu: İki ifadeler aynı bayt dizisi oluşturursanız Bu sadece çalışır

CGPoint origin = {10, 20}; 
CGSize size = {100, 200}; 
CGRect rect = {origin, size};