ビューコントローラーから呼び出している uiview サブクラスがあります。すべてが表示されますが、サイズを変更できません。ビューのinitwithframeメソッドにブレークポイントを置くと、変更されていないように見えますが、ビューコントローラーは間違いなく変更しています...
ここに私のView Controllerコードがあります:
- (void)resizeWithTag:(int)tag wasTouched:(BOOL)touched
{
GameBox *tbox = (GameBox *)[self.view viewWithTag:tag];
CGRect frame = tbox.frame;
frame = CGRectMake(0, 0, 300, 300);
tbox.frame = frame;
[tbox setNeedsDisplay];
NSLog(@"%f", tbox.frame.size.width);
}
そして、ここに uiview サブクラスの init メソッドと draw メソッドがあります
- (id)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
// Initialization code
[self setBackgroundColor:[UIColor colorWithRed:0 green:0 blue:0 alpha:1]];
name = [[UILabel alloc] init];
self.autoresizesSubviews = YES;
}
return self;
}
// Only override drawRect: if you perform custom drawing.
// An empty implementation adversely affects performance during animation.
- (void)drawRect:(CGRect)rect
{
// Drawing code
int border = 3;
UIImage *image = [UIImage imageNamed:@"Sunflower.jpeg"];
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextSetRGBStrokeColor(context, 0.0, 0.0, 0.0, 1);
CGContextStrokeRectWithWidth(context, CGRectMake(0, 0, rect.size.width, rect.size.height), border);
[self attachImage:image inRect:rect inBorder:border];
[name setFrame:CGRectMake(0 + border/2, rect.size.height-10-border/2, rect.size.width-(border), 10)];
[name setFont:[UIFont fontWithName:@"Helvetica" size:9.0]];
[name setBackgroundColor:[UIColor colorWithRed:1.0 green:0.0 blue:0.0 alpha:0.0]];
name.textAlignment = UITextAlignmentCenter;
[self addSubview:name];
}