我有一個名爲INMenuCard的UIButton的子類,我重寫了initWithFrame以包含一個活動指示器。菜單卡放置正確,但任何內部引用「框架」給我「inf,inf,0,0」這意味着我的activityIndicator子視圖放置不正確。我可能會錯過什麼?爲什麼initWithFrame具有錯誤的幀值?
@implementation INMenuCard
- (id)initWithFrame:(CGRect)frame
{
if (self = [super initWithFrame:frame])
{
CGRect innerFrame = CGRectInset(frame, 50.0f, 100.0f);
activityIndicator = [[UIActivityIndicatorView alloc]
initWithFrame:innerFrame];
activityIndicator.activityIndicatorViewStyle = UIActivityIndicatorViewStyleWhite;
[self addSubview:activityIndicator];
}
return self;
}
我實例INMenuCard用(調試顯示的CGRect值是正確的):
CGRect cardFrame = CGRectMake(cardX, cardStartY, cardWidth, cardHeight);
INMenuCard *menuCard = [[INMenuCard buttonWithType:UIButtonTypeCustom] initWithFrame:cardFrame];
[theView addSubView:menuCard];
CGRectInset指出「矩形是標準化的,然後應用插入參數,如果結果矩形的高度或寬度爲負值,則返回空矩形。 innerFrame的價值是什麼? – slf 2010-04-17 15:20:29
謝謝slf。 innerFrame是零,inf,null(取決於正確的定義),因爲封閉幀在這一點上是零,inf,null。證實「self.frame」也是零。 – CBGrey 2010-04-17 15:23:39