Hi,
Thanks for the reply.

But the problem is that I don't have anything common in the rows.
The image (128x128) are different, the four lines of text are different and the 
lines I draw are different in each cell.

Any Ideas?

Regards,
Nick

On 03-Mar-2011, at 9:48 PM, jonat...@mugginsoft.com wrote:

> 
> On 3 Mar 2011, at 04:06, Nick Rogers wrote:
> 
>> Hi,
>> I have a table view with the custom cell class assigned to its only column 
>> in awakeFromNib method using setDataCell:.
>> Then I'm doing some drawing in drawInteriorWithFrame: of the NSCell subclass.
>> The problem is that drawing include four lines of text and an image and a 
>> few lines using NSBezierPath.
>> 
>> This is relatively time consuming and hence when I scroll the table view, 
>> the scrolling is not that smooth and is a bit jerky.
>> 
>> Is there a way to do all this custom drawing in a manner that could make the 
>> scrolling faster.
> 
> I use the following approach in an NSView but you can adapt it.
> 
> The idea is to cache your background (that is common to all cells) in an 
> NSImage instance.
> When the cell needs drawn you copy from the image cache into your focus 
> locked view.
> Then you can draw the unique cell content - text etc.
> 
> Obviously when the cell size changes you have to regenerate your background 
> image cache.
> 
> - (void)drawRect:(NSRect)rect 
> {     
> 
>       if (!_imageCache) {
>               
>               // draw to image cache
>               _cacheRect  = [self bounds];
>               _imageCache = [[NSImage alloc] initWithSize:_cacheRect.size];
>               [_imageCache lockFocus];
>       
>               // draw background with beziers etc
>       
>               [_imageCache unlockFocus]; 
>       }
> 
>       [_imageCache drawInRect:rect fromRect:rect 
> operation:NSCompositeSourceOver fraction:1.0f];
> 
>       // now draw unique foreground
> }     
> 
> 
> 
> 
> Regards
> 
> Jonathan Mitchell
> 
> Developer
> Mugginsoft LLP
> http://www.mugginsoft.com_______________________________________________
> 
> 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/roger_s1%40mac.com
> 
> This email sent to roger...@mac.com

_______________________________________________

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