2015-02-17 3 views
0

Я пытаюсь сделать UIView, который ограничен нижней частью представления контейнера, фактически не делая автоматическую компоновку ограничений. Вот мой код:размер UIView, встроенный в UIView

-(void)viewDidLoad 
{ 
[super viewDidLoad]; 
CGRect screenRect = [[UIScreen mainScreen] bounds]; 
CGFloat screenWidth = screenRect.size.width; 
CGFloat screenHeight = screenRect.size.height; 
self.graphView.frame = CGRectMake(0,screenHeight - (screenWidth/2), screenWidth, screenWidth/2); 
} 

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

+0

изменить код 'CGRectMake (0, ScreenHeight - (ScreenHeight/2), screenWidth, ScreenHeight/2);' – Nagarajan

+0

IOS зависит от размера/границ изображения запуска, чтобы получить границы экрана. Какое значение представляет ваш образ запуска? Не могли бы вы рассказать, какое значение показывает screenRect? http://stackoverflow.com/questions/21668497/uiscreen-mainscreen-bounds-returning-wrong-size –

+0

Ваш CGRectMake кажется правильным, так как я считаю, что вы ищете коробку (ширина экрана/2) на на том же расстоянии от дна. –

ответ

0

Решение: Отключить автоматическое расположение и любые другие переключению IB, которые оказывают влияние на то, где вид уделяется , Исходный код правильный для прямоугольника, который я хотел, он просто перемещался автоматически. Кроме того, лучше настроить график контейнер так:

self.graphContainer = [[UIView alloc] initWithFrame:CGRectMake(0,screenHeight - (screenHeight/2),  screenWidth, screenHeight/2)]; 
0

Я думаю, что вы используете screenWidth, когда вам нужно использовать ScreenHeight Правильный код:

-(void)viewDidLoad 
{ 
[super viewDidLoad]; 
    CGRect screenRect = [[UIScreen mainScreen] bounds]; 
    CGFloat screenWidth = screenRect.size.width; 
    CGFloat screenHeight = screenRect.size.height; 
    self.graphView.frame = CGRectMake(0,screenHeight - (screenHeight/2),  screenWidth, screenHeight/2); 
} 
+0

В этом случае я бы просто сделал CGRectMake (0, screenHeight/2, screenWidth, screenHeight/2); Это было связано с тем, что он не ограничивал низу, а не проблему с начальной координатой y или высотой. Исходный квадрат - желаемый размер – RDSpinz

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