As far as I know, views displayed by constraints don't got a frame, so what should I do when I want to draw some lines in these views? Methods like moveToPoint do need a CGRect.
Here's my check: NSLog(@"%f,%f,%f,%f",self.contentView.frame.origin.x,self.contentView.frame.origin.y,self.contentView.frame.size.width,self.contentView.frame.size.height); And the result is 0.000000,0.000000,0.000000,0.000000
For more details, here's my code:
-(void)loadView { self.view = [[UIView alloc]init]; self.titleView = [[UIView alloc]init]; self.placesHolder = [[UIView alloc]init]; self.contentView = [[UIView alloc]init]; self.titleView.translatesAutoresizingMaskIntoConstraints = NO; self.placesHolder.translatesAutoresizingMaskIntoConstraints = NO; self.contentView.translatesAutoresizingMaskIntoConstraints = NO; self.titleView.backgroundColor = [UIColor grayColor]; self.placesHolder.backgroundColor = [UIColor blueColor]; self.contentView.backgroundColor = [UIColor redColor]; [self.view addSubview:self.titleView]; [self.view addSubview:self.placesHolder]; [self.view addSubview:self.contentView]; NSDictionary *timeLineViewMap = @{@"titleView":self.titleView, @"placesHolder":self.placesHolder, @"contentView":self.contentView }; NSArray *titleHorizon = [NSLayoutConstraint constraintsWithVisualFormat:@"H:|[titleView]|" options:0 metrics:nil views:timeLineViewMap]; NSArray *placesHolderHorizon = [NSLayoutConstraint constraintsWithVisualFormat:@"H:|[placesHolder(==58)]-0-[contentView]|" options:0 metrics:nil views:timeLineViewMap]; NSArray *titleVertical = [NSLayoutConstraint constraintsWithVisualFormat:@"V:|[titleView(==58)]-0-[placesHolder]|" options:0 metrics:nil views:timeLineViewMap]; NSArray *contentViewConstrain = [NSLayoutConstraint constraintsWithVisualFormat:@"V:[titleView]-0-[contentView]|" options:0 metrics:nil views:timeLineViewMap]; [self.view addConstraints:titleHorizon]; [self.view addConstraints:placesHolderHorizon]; [self.view addConstraints:titleVertical]; [self.view addConstraints:contentViewConstrain]; }
self.contentViewisnilat this time.UIViewinstances? And since these views don't have an intrinsic content size they might get set to 0 width/height… especiallycontentView.