On May 5, 2010, at 8:18 AM, Gustavo Pizano wrote:

> Hello all.
> 
> I have a split view and inside I have custom views, in one subview Im drawing 
> lines with a NSBezierPath, and when I move the divider I  see sometimes the 
> lines very thin some others no, so I  know this last behavior its because Im 
> drawing in half a pixel.
> 
> I was reading the apple docs about this topic,  and I tried at the beginning 
> of my drawRect method I did as in "Converting Coordinate Values" topic 
> suggest to convert my starting drawing point,  but that din't help. I still 
> see the above behavior. 
> I realize then that when I resize the window I  have the same behavior, so 
> what I did was in the windowDelegate  windowWillResize method, I did the 
> following:
> 
>       if((NSInteger)frameSize.width % 2 != 0){
>               frameSize.width += 1.0f;
>               
>       }
>       if((NSInteger)frameSize.height % 2 != 0){
>               frameSize.height += 1.0f;
>       }
> 
> and when I resize the window I don't see hte problem anymore. I tried 
> applying this same to the splitview delegate when resizing, but unfortunately 
> this approach didn't work well, I started getting warnings in the console 
> that the size of the subviews weren't correct and it was being recalculated 
> at the cost of performance.
> 
> So any other idea on what can I do to avoid this behavior? 

First off, is frameSize from self.frame.size? If you have a view's frame that 
is not integral (ie: x=3.5, or width=300.5), then the view's contents will draw 
fuzzy. You don't want that. So, do some consistent truncing/ceiling. ie: 
frame.origin.x = trunc(frame.origin.x), or rounding -- rounding usually isn't 
what you want, since sometimes it will round up and other times it will round 
down. It is better to be consistent with trunc/ceil, but it depends on what you 
are doing. 

The same advice goes for the rects you are using as bezier paths.

corbin


_______________________________________________

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Reply via email to