Skip navigation.
 
mlRe: Creating subviews programmatically ?
FROM : Vince Ackerman
DATE : Fri Nov 30 19:18:11 2007

Sorry, I was using Bounds instead of Frame...  but it still doesn't 
change the behavior with the array. Here are the two methods I'm using:

/* Changing frame (which is what happens when the window is resized) 
should cause relayout.
  */
- (void)setFrameSize:(NSSize)size {
    [super setFrameSize:size];
    [self resizeDayViews: size];
}


-(void)resizeDayViews: (NSSize) size  //  Adjust all subViews for size 
of Main view
{
   NSArray *subDayViews = [self subviews];  // get array of all subviews
   NSEnumerator *enumerator = [subDayViews objectEnumerator]; // get 
enumerator to step through the subview array
   
   NSRect newFrame = [self frame];            // get current bounds rect
   NSRect newRect;
   
   
   float dayWidth = ( (newFrame.size.width - 9) / 7);
   float weekHeight = ( (newFrame.size.height - 9) / 6) ;
   int x,y,rowCnt, columnCnt;
   
   NSLog( @"Start of Resize Method------------------------------");

   // for each row of days
   for (y = 5, rowCnt = 0;  rowCnt < 6;    y = y + weekHeight, rowCnt++)
   {
       for(x = 5, columnCnt = 0; columnCnt < 7; x = x + dayWidth, columnCnt+
+)
       {
           newRect = NSMakeRect(x, y, dayWidth, weekHeight );
           DayView *tempView = [enumerator nextObject];
           [ tempView setFrame: newRect ];
           NSLog( @"frame set");
           NSLog( @"%@", [NSString stringWithFormat:@"%i", [tempView 
gridNum] ]);
           NSLog(@"%@", NSStringFromRect(newRect) );
           
           NSLog(@"%@", NSStringFromRect([ tempView frame]) );
       }
       
   }
}


On Nov 30, 2007, at 09:55, Joshua Emmons wrote:

>> For some reason each time the resizeSubview method is called, 
>> NSEnumerator alternately returns with either the first subview in 
>> the array, or the last. The first time the method is called, the 
>> first subview is number 0, continuing through 41. The next time it 
>> goes through the array, the enumerator starts with subview 41, 
>> skips subview 0, and iterates to subview 1, then 2, 3 etc.

>
> I haven't come across this behavior before, and a quick sample app 
> doesn't exhibit it. Maybe give some more details about your 
> implementation? Maybe it's a bug with how your calling NSEnumerator?
>
> Cheers,
> -Joshua Emmons

Related mailsAuthorDate
mlCreating subviews programmatically ? Vince Ackerman Nov 26, 17:18
mlRe: Creating subviews programmatically ? j o a r Nov 26, 17:27
mlRe: Creating subviews programmatically ? I. Savant Nov 26, 17:31
mlRe: Creating subviews programmatically ? Vince Ackerman Nov 26, 17:59
mlRe: Creating subviews programmatically ? Erik Buck Nov 26, 20:59
mlRe: Creating subviews programmatically ? I. Savant Nov 26, 21:35
mlRe: Creating subviews programmatically ? Scott Anguish Nov 27, 02:16
mlRe: Creating subviews programmatically ? Ricky Sharp Nov 27, 02:55
mlRe: Creating subviews programmatically ? I. Savant Nov 27, 02:57
mlRe: Creating subviews programmatically ? Vince Ackerman Nov 27, 16:32
mlRe: Creating subviews programmatically ? Vince Ackerman Nov 30, 18:49
mlRe: Creating subviews programmatically ? Vince Ackerman Nov 30, 18:54
mlRe: Creating subviews programmatically ? Vince Ackerman Nov 30, 19:04
mlRe: Creating subviews programmatically ? Vince Ackerman Nov 30, 19:18
mlRe: Creating subviews programmatically ? Vince Ackerman Dec 1, 06:46
mlRe: Creating subviews programmatically ? Dave Hersey Dec 1, 07:21
mlRe: Creating subviews programmatically ? Vince Ackerman Dec 1, 17:51
mlRe: Creating subviews programmatically ? Dave Hersey Dec 1, 18:22
mlRe: Creating subviews programmatically ? Vince Ackerman Dec 1, 18:24
mlRe: Creating subviews programmatically ? Vince Ackerman Dec 1, 18:59
mlRe: Creating subviews programmatically ? Vince Ackerman Dec 2, 13:35
mlRe: Creating subviews programmatically ? Scott Ribe Dec 4, 23:47