2015-07-15 3 views
0

В настоящее время я пытаюсь добавить UIIMageView поверх класса. Без ограничений, я могу добавить объект, такой как UIImageView без каких-либо помех: [self addSubview:myImage];. Однако, когда я добавляю [myImage setTranslatesAutoresizingMaskIntoConstraints: NO]; вместе с необходимыми ограничениями, изображение добавляется к UIViewController против класса.Цель C Ограничения в классах

(Прямо сейчас, SizeX/Y представляет собой отдельный алгоритм для установки ширины и высоты изображения и не будут нужны, предполагающие ограничения будут работать)

1) Почему?

2) Как можно добавить UIImageView с ограничениями?

Вот код:

UIImageView *myImage = [[UIImageView alloc] init]; 
//AutoResize... 
myImage.frame = CGRectMake(0, 0, sizeX, sizeY); 
myImage.center = CGPointMake(placementX, placementY); 

myImage.image = [UIImage imageNamed:@"customImage"]; 

[self addSubview:myImage]; 

       // Width constraint 
[self addConstraint:[NSLayoutConstraint constraintWithItem:myImage 
                   attribute:NSLayoutAttributeWidth 
                   relatedBy:NSLayoutRelationEqual 
                    toItem:self 
                   attribute:NSLayoutAttributeWidth 
                   multiplier:0.5 
                    constant:0]]; 

       // Height constraint 
[self addConstraint:[NSLayoutConstraint constraintWithItem:myImage 
                   attribute:NSLayoutAttributeHeight 
                   relatedBy:NSLayoutRelationEqual 
                    toItem:self 
                   attribute:NSLayoutAttributeHeight 
                   multiplier:0.5 
                    constant:0]]; 

Спасибо!

ответ

0

Я в настоящее время пытаюсь добавить UIMageView на вершине класса ...

... изображение добавляется к контроллеру представления по отношению к классу.

Ни одно из этих утверждений имеет смысла для меня, но ...

Глядя на код ограничения, установить ограничения для ширины и высоты изображения зрения, но этого недостаточно, чтобы однозначно позиции изображение. Вам нужно добавить 2 ограничения: для вертикального и горизонтального положения изображения. Например, если вы хотите, чтобы изображение было сфокусировано в его супервизии:

[self addConstraint:[NSLayoutConstraint constraintWithItem:myImage 
                  attribute:NSLayoutAttributeCenterX 
                  relatedBy:NSLayoutRelationEqual 
                   toItem:self 
                  attribute:NSLayoutAttributeCenterX 
                  multiplier:1.0 
                   constant:0]]; 


[self addConstraint:[NSLayoutConstraint constraintWithItem:myImage 
                  attribute:NSLayoutAttributeCenterY 
                  relatedBy:NSLayoutRelationEqual 
                   toItem:self 
                  attribute:NSLayoutAttributeCenterY 
                  multiplier:1.0 
                   constant:0]]; 
+0

«myImage.center = CGPointMake (placementX, placementY);» Используется для центрирования. – Bender

+0

@Bender вы не можете использовать это при настройке ограничений. – uchuugaka

+0

С небольшим количеством терпения я нашел подходящую рабочую среду, используя исключительно ограничения. Работает как очарование сейчас, спасибо! – Bender

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