IPhone - installing firmware 2.2 caused strange display behavior

I have a UINavigationController containing a UIViewController initialized with a UIView.

UINavigationController also has a UINavigationBar as usual.

Earlier when I positioned a new item in the UIView at 0,0 using

CGRectMake(0,0,height,width);

      

It positions it directly below the UINavigationController. However, since compiling with 2.2 now positions 0,0 directly behind the UINavigationBar (where you would expect 0,0 to be ok).

This only happens when the app is recompiled with the 2.2 SDK - the app left on the iPhone before the update still works as expected.

The thing is, I really want my app to draw correctly with 2.2 and also backward compatible with 2.1

Has anyone seen this behavior or knew more about this?

Thank!

+1


source to share


4 answers


There is a whole (very helpful) thread about 2.2 breaking in the Apple dev forums. It includes this issue (albeit without any fixes). I've seen this mentioned elsewhere as well.

Worth checking it out



https://devforums.apple.com/message/12297#12297 (link fixed)

+1


source


It looks like this new behavior is "intended" behavior, which makes sense.

It's just a shame that it will be difficult to render my application in 2.1 and 2.2.



It also seems that if I came across my transparent / opaque UINavigationBar setting, I would find the correct combination of errors that would make it correct in both.

Let you know my findings.

0


source


From the linked thread:

"Fixed making my Opaque navbars (used to be semi-transparent). I think this is a bug as it seems logical to me that the view should appear behind a semi-transparent bar."

So this looks like intentional behavior. Makes sense, but bummer nonetheless!

0


source


I was able to make the positioning of the view when using UIBarStyleTranslucent the same in both 2.1 and 2.2 by doing the following:

Set the view of my view manager to a custom view that I created. Create a custom view that extends the UIScrollView and in the drawRect method draw a black background and set its content to the view size.

Hope this helps =)

0


source







All Articles