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
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






Cocoa mail archive

