• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Re: Problem with Auto Layout and drawRect
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Problem with Auto Layout and drawRect


  • Subject: Re: Problem with Auto Layout and drawRect
  • From: Graham Cox <email@hidden>
  • Date: Tue, 08 Sep 2015 10:02:23 +1000

Just a brief comment on the design of your class.

Why do you declare properties for frame and pane colour, and then have additional setter methods that set these properties (and mark the view as needing display)?. You can write the property setter methods directly to cause a refresh and none of those extra methods are needed. It ensures that there’s no way code can change the property without the view redrawing.

The flags for drawing the frame and fill are redundant - you could have the colour property set to nil to mean ‘don’t draw this’.

Also, NSColor is immutable so there’s little purpose to having that property ‘copy’, it can be ‘retain’ (or ‘strong’) and it will save you a small amount of space per instance.

These are minor nits to be sure, but often it’s this that makes the difference between a good class and a great one.

—Graham




> On 8 Sep 2015, at 3:34 am, Dave <email@hidden> wrote:
>
> @interface LTWDrawFrameView : NSView
> {
> }
> @property (nonatomic,assign)	BOOL							pDrawFrameFlag;
> @property (nonatomic,assign)	BOOL							pDrawPaneFlag;
>
> @property (nonatomic,copy)		NSColor*							pFrameColor;
> @property (nonatomic,copy)		NSColor*							pPaneColor;
>
> @property (nonatomic,assign)	CGFloat							pFrameLineWidth;
> @property (nonatomic,assign)	NSSize							pFrameInsetSize;
>
> -(void) setDrawFrame:(BOOL) theFlag;
> -(void) setDrawPane:(BOOL) theFlag;
> -(void) setFrameColor:(NSColor*) theColor;
> -(void) setPaneColor:(NSColor*) theColor;
> -(void) setFrameLineWidth:(CGFloat) theLineWidth;
> -(void) setFrameInsetSize:(NSSize) theInsetSize;
>
> @end


_______________________________________________

Cocoa-dev mailing list (email@hidden)

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:

This email sent to email@hidden


  • Follow-Ups:
    • Re: Problem with Auto Layout and drawRect
      • From: Ben Kennedy <email@hidden>
    • Re: Problem with Auto Layout and drawRect
      • From: Dave <email@hidden>
References: 
 >Problem with Auto Layout and drawRect (From: Dave <email@hidden>)

  • Prev by Date: Re: "Computed segue" in iOS?
  • Next by Date: Re: Getting started with Cocoa Bindings in My Project?
  • Previous by thread: Re: Problem with Auto Layout and drawRect
  • Next by thread: Re: Problem with Auto Layout and drawRect
  • Index(es):
    • Date
    • Thread