2015-10-12 3 views
1

Я пытаюсь запрограммировать контроллер представления моего приложения. У него есть кнопки и текстовые поля. Я хочу поместить мои объекты в другое представление (одно с цветным зеленым фоном). Первое текстовое поле должно быть на самой вершине зеленого вида.Добавить кнопку в верхней части окна iOS программно

Я знаю, как сделать его центром. Но мне нужно поставить его на (0,0) зеленого.

Вот что я сделал до сих пор:

// add UI View For TextFields and Login Button 
UIView *utc = [[UIView alloc] init]; 
utc.backgroundColor = [UIColor greenColor]; 
utc.frame = CGRectMake(0, 0, screenWidth * 0.95, 170); 
utc.center = CGPointMake(screenWidth * 0.50, screenHeight * 0.68); 
[self.view addSubview:utc]; 

// add textfield1 
UITextField *emailTextField = [[UITextField alloc] initWithFrame:CGRectMake(0, 0, utc.frame.size.width, miniButtonWidth.height)]; 
emailTextField.center = CGPointMake(utc.frame.size.width * 0.5, utc.frame.size.height * 0.01); 
emailTextField.borderStyle = UITextBorderStyleNone; 
emailTextField.background = [UIImage imageNamed:@"textfieldLogIn.png"]; 
emailTextField.placeholder = @"Email Address"; 
emailTextField.backgroundColor = [UIColor clearColor]; 
[utc addSubview:emailTextField]; 

Я использую тот же путь (настраиваемую рамку и центр) мнений в моей другой ViewController, и конструкция выглядит отлично красиво, просто в этом случае я не могу поместить текстовое поле в самый верх. Я новичок в iOS.

enter image description here

+0

Хотите текстовое поле в верхней части зеленого UIView? – kezi

+0

Я хочу, чтобы текстовое поле было в начале зеленого UIView сэр. – Clint

ответ

1

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

UITextField *emailTextField = [[UITextField alloc] initWithFrame:CGRectMake(0, 0, utc.frame.size.width, miniButtonWidth.height)]; 

emailTextField будет в верхнем левом углу, и вы не будете иметь в центр, потому что это уже ширина utc.

+0

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

+0

Я бы отказался от использования свойства 'center'. Это одна дополнительная линия. Первые 2 параметра 'CGRectMake()' - это x и y origin. Для центра просто возьмите '(внешний вид - внутренний вид)/2'. – kezi

+0

В вашем случае x происхождение будет '0', потому что и снаружи (супервизор), и внутри имеют одинаковую ширину. – kezi