CGRect positioning according to center point
cgrectmake, ios, uiview
Solution
Center of a `CGRect` is a `CGPoint` created from the `origin.x + ( size.width / 2 )` and `origin.y + ( size.height / 2 )`.
Problem
I'm trying to create multiple views for an iPad app. First I created a menu view and then a sub-menu view with coordinates according to menu. So it looks like this: What I did: ``` self.view = [[UIView alloc] initWithFrame:CGRectMake(self.parentViewController.view.frame.size.width, 0, 150, screenHeight)]; ``` But now on sub-menu I'm trying to create the content view, which is a UINavigationController. Trying to do the same thing, I get this result: What I'm doing (this time creating the frame on sub-menu view controller): ``` CGRect frame = CGRectMake(self.view.frame.origin.x + self.view.frame.size.width, 0, [[UIScreen mainScreen] bounds].size.width - self.view.frame.origin.x - self.view.frame.size.width, [[UIScreen mainScreen] bounds].size.height); ``` It's pretty self-explanatory but, I just get the sub-menu origin and add its width so I can get the right edge coordinate. After a lot of attempts I managed to get it working, because I noticed that the CGRectMake is using the center of the UINavigationController view to arrange its position. So the following code: ``` CGRect frame = CGRectMake(self.view.frame.origin.x + self.view.frame.size.width + 259, 0, [[UIScreen mainScreen] bounds].size.width - self.view.frame.origin.x - self.view.frame.size.width, [[UIScreen mainScreen] bounds].size.height); ``` Yields the right position. What's going on? I thought CGRectMake origin would always be top-left, but on this particularly view is actually top-middle (or middle-middle, not sure.) What am I doing wrong? EDIT1: Here's the console output for the frame with right position: Notice how the nav bar is now positioned right: But the x-coord is not 250 (as it should be, because menu.width + sub-menu.width = 250.) EDIT2: I eventually gave up. The problem was with the automatically generated UINavigationBar, which is created by the UINavigationViewController. I can't seem to figure out how to configure it. I'm gonna leave the question open in case someone knows the answer.