2015-04-29 4 views
0

Я хочу программно установить положение объекта. Для этого я:Позиционирование объекта программно в Swift

youtubeIco.frame.origin.y = 100 

но ничего. Он вообще не меняет координаты. В чем проблема?

И второй вопрос:

, когда я установил в XCode ограничений WebView (напр.: 10 (сверху, слева, справа, внизу) он исчезает, но когда я не ставлю ограничений для него, это оказывается, что проблема

Я хочу, как это:.?

enter image description here

+2

Вместо того, чтобы манипулировать фреймом, вы должны управлять ограничением. Вы можете создать IBOutlet для ограничения, чтобы сделать это проще – Paulw11

ответ

4

Вы должны установить полный кадр, как,

youtubeIco.frame = CGRectMake(youtubeIco.frame.origin.x, 100,youtubeIco.frame.size.width,youtubeIco.frame.size.height) 

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

+0

Не работает снова =/ –

+0

Попробуйте удалить ограничение, если решите, добавьте ограничение, кроме top-align, иначе позиция y не изменится. –

+0

nope. Это тоже не решило –

0

С помощью функции AutoLayout вы не можете напрямую изменить рамку представления. Ограничение возвращает объект обратно, где он был.

Вместо этого вы должны добавить ограничения, которые позиционируют ваши представления, и добавлять IBOutlets к этим ограничениям. Затем вы используете выход (ы) для изменения постоянного значения ограничения, и ограничение перемещает ваши объекты просмотра для вас. (В этом контексте все, что вы можете отобразить на экране, представляет собой представление {потомок UIView}, включая кнопки.)