2016-08-03 3 views
0

Это макет, который я пытаюсь достичь.iOS - Как позиционировать вид, фиксированный в определенной области на фоне изображения

enter image description here

Я хочу, чтобы поместить желтую круглую кнопку в небольшой круглой области фона в любом iPhone. Круговая область не центрирована в этом изображении.

Это так далеко, что я пробовал:

  • Во-первых, я добавил UIView с 1px 1px х, прозрачным цветом фона к центру всей компоновки. Я называю это центральной точкой
  • Затем я установил вертикальное расстояние между центральной точкой и желтой кнопкой.
  • Я также установил ведущее ограничение между желтой кнопкой и супер-представлением.
  • Затем я установил соотношение сторон (желтая ширина кнопки до высоты желтой кнопки).
  • Другое соотношение сторон (желтая кнопка для фонового изображения).

Однако результат действительно не тот, который я ожидаю, он должен быть. Хорошо, что если фоновое изображение искажено, я просто хочу, чтобы желтая кнопка оставалась внутри круговой области фонового изображения.

Спасибо!

ответ

1

Для того, чтобы расположить круг относительно фона, установить ограничение для выравнивания задней кромки окружности с задней кромкой зрения изображения, а затем установить множитель до соответствующего значение, как 214:640. Это приведет к тому, что круг будет перемещаться вправо на нужную величину по мере увеличения размера экрана.

Аналогичным образом выровняйте нижнюю часть круга к нижней части изображения и установите множитель на соответствующее значение, например 478:900, и оно будет поддерживать выравнивание круга по мере увеличения экрана.

Играйте с коэффициентами, пока они не выглядят хорошо на одном телефоне (например, iPhone 5S), тогда они будут работать для 6S и 6S Plus.

Установите ширину круга, равную ширине просмотра изображения, и установите множитель в 100:320.

0

Я бы не зашел так далеко, я бы сделал одну кнопку, которая соответствует всему экрану, установите изображение кнопки, чтобы быть всем изображением, включая желтый круг. Затем с помощью аналогичного кода ниже:

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event 
{ 
    UITouch *touch = [touches anyObject]; 

    // Get the specific point that was touched 
    CGPoint point = [touch locationInView:self.view]; 
    if (point.x * 100/parentView.width in range (0-100) && point.y*100/parentView.heiht in range (0-100)){ 
     // write your button event handler here. 
    } 

} 
+0

Хм, что, если у меня все еще есть другие кнопки, которые также должны быть в некоторой определенной точке (на самом деле у меня есть). Существуют и другие кнопки, которые должны располагаться поверх строк. Извините, я не упоминал об этом. Итак, сделав то, что вы только что сказали, мне просто нужно сделать изображение со всеми прикрепленными кнопками и просто обнаружить точки касания. Но не так ли правильно определить точки касания? –

+0

Вам нужно беспокоиться о том, как выглядит приложение, а затем в вашем коде на основе ширины и высоты родителя вы можете легко найти область каждой кнопки. Я отредактирую свой ответ за вас. –

+0

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

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

  • Нет связанных вопросов^_^