我寫了這樣的代碼:樣式表問題
+ (CGFloat)tableView:(UITableView*)tableView rowHeightForObject:(id)item {
CustomTTTableSubtitleItem* captionedItem = item;
CGFloat maxWidth = tableView.width - kHPadding*2;
CGSize titleSize = [captionedItem.title sizeWithFont:TTSTYLEVAR(myTitleFont) constrainedToSize:CGSizeMake(maxWidth, CGFLOAT_MAX) lineBreakMode:UILineBreakModeWordWrap];
}
得到這個異常:
2011-07-24 03:10:18.762心有餘[15941:B303] - [TTDefaultStyleSheet myTitleFont] :無法識別的選擇發送到實例0x5b5e120 2011-07-24 03:10:18.765新友[15941:B303] *終止應用程序由於 未捕獲的異常 'NSInvalidArgumentException',原因: 「 - [TTDefaultStyleSheet myTitleFont]:無法識別一個選擇器S耳鼻喉科 實例0x5b5e120' *在第一擲調用堆棧:(0的CoreFoundation
0x0119a5a9 exceptionPreprocess + 185 1 libobjc.A.dylib
0x012ee313 objc_exception_throw + 44 2的CoreFoundation
0x0119c0bb - [NSObject的(NSObject的)doesNotRecognizeSelector: ] + 187 3
的CoreFoundation 0x0110b966 __ 轉發 + 966 4的CoreFoundation 0x0110b522 _CF_forwarding_prep_0 + 50 5新友
0x000081f9 + [CustomTTTableSubtitleItemCell 的tableView:rowHeightForObject:] + 186 6新友
0x000a6c92 - [TTTableViewVarHeightDelegate 的tableView:heightForRowAtIndexPath:] + 156 7的UIKit
0x0064a6d5 - [UISectionRowData
在這種異常可以看到[TTDefaultStyleSheet myTitleFont]: unrecognized selector sent to instance 0x5b5e120
但在實際上myTitleFont
定義XYDefaultStyleSheet
,我在課堂上輸入XYDefaultStyleSheet.h
。 XYDefaultStyleSheet.h
和XYDefaultStyleSheet.m
像:
XYDefaultStyleSheet.h
#import "Three20/Three20.h"
@interface XYDefaultStyleSheet : TTDefaultStyleSheet
@property(nonatomic,readonly) UIColor* myHeadingColor;
@property(nonatomic,readonly) UIColor* mySubtextColor;
@property(nonatomic,readonly) UIColor* myTitleColor;
@property(nonatomic,readonly) UIFont* myTitleFont;
@property(nonatomic,readonly) UIFont* myHeadingFont;
@property(nonatomic,readonly) UIFont* mySubtextFont;
@end
XYDefaultStyleSheet.m
#import "XYDefaultStyleSheet.h"
///////////////////////////////////////////////////////////////////////////////////////////////////
@implementation XYDefaultStyleSheet
///////////////////////////////////////////////////////////////////////////////////////////////////
// styles
///////////////////////////////////////////////////////////////////////////////////////////////////
// public colors
- (UIColor*)myTitleColor {
return [UIColor blackColor];
}
- (UIColor*)myHeadingColor {
return RGBCOLOR(80, 110, 140);
}
- (UIColor*)mySubtextColor {
return [UIColor grayColor];
}
///////////////////////////////////////////////////////////////////////////////////////////////////
// public fonts
- (UIFont*)myTitleFont {
return [UIFont boldSystemFontOfSize:16];
}
- (UIFont*)myHeadingFont {
return [UIFont boldSystemFontOfSize:13];
}
- (UIFont*)mySubtextFont {
return [UIFont systemFontOfSize:12];
}
@end
爲什麼總是告訴[TTDefaultStyleSheet myTitleFont]
...如果這個問題真的myTitleFont
,它應該是[XYDefaultStyleSheet myTitleFont]
,爲什麼TTDefaultStyleSheet
?
謝謝夥計,我工作了,就像你做 –
不用擔心@Jason趙。樂意效勞。 – fuzz