2013-09-27 3 views
0

Всего newb здесь.Проблема несогласованности масштабирования UIProgressView

В чем разница между этим

_myUIProgressView.transform = CGAffineTransformScale(_myUIProgressView.transform, 1.0, 0.3); 

и это:

[_myUIProgressView setTransform:CGAffineTransformMakeScale(1.0, 0.3)]; 

помимо краткости. Зачем вы предпочитаете друг друга?

+0

Возможный дубликат [Dot Notation vs Method Notation] (http://stackoverflow.com/questions/11386256/dot-notation-vs-method-notation) или http://stackoverflow.com/questions/16575545/dot -syntax-vs-square-brackets-when-setting-background-color-in-collection-view – rmaddy

ответ

0

Эти 2 вызова функционально идентичны. Единственное отличие - синтаксис.

Первая называется точечной нотации. Второй вызов метода для сеттера.

Точечная нотация - это альтернативный способ вызова setter или getter объекта, и он делает то же самое, что и другой синтаксис.

Некоторые люди (в основном программисты старой школы C) не любят синтаксис точки. Я старый программист на С, но мне это нравится.

+0

Возможно, стоит отметить, что в этом конкретном случае вызовы * method * идентичны, но две функции CoreGraphics используются для генерации шкала фактически различна ('CGAffineTransformScale' vs' CGAffineTransformMakeScale'). Я предполагаю, что @misterkeeter спрашивал о синтаксисе точки. – lxt

+0

На самом деле это не так, в первом примере преобразование вида преобразуется, однако во втором примере масштабное преобразование явно задано для просмотра. Скажем, если вы вызовете первый код несколько раз, ваше представление станет более тонким при каждом вызове. Если вы выберете второй код, вы увидите, что он станет более слабым, но второй и дальнейшие звонки не изменят его. –

+0

@ объяснение petrokorienev попадает в суть проблемы, которая у меня возникла. В то же время полезно разъяснение синтаксиса. – misterkeeter

Смежные вопросы