0
我劃分了一個自定義視圖,該視圖被拖入Interface Builder中的一個窗口中。當鼠標進入視圖的邊界時,我希望視圖的高度發生改變。我的問題是高度變化是向上而不是向下。我嘗試用(BOOL)isFlipped
翻轉視圖的座標,但它對高度變化的方向沒有任何影響。任何幫助我如何改變向下的高度?帶有翻轉繪圖座標的NSView高度方向
#import "ViewA.h"
@implementation ViewA
- (id)initWithFrame:(NSRect)frame
{
self = [super initWithFrame:frame];
if (self) {
NSTrackingArea *trackingArea = [[NSTrackingArea alloc] initWithRect:[self bounds]
options:(NSTrackingMouseEnteredAndExited|NSTrackingActiveAlways)
owner:self
userInfo:nil];
[self addTrackingArea:trackingArea];
}
return self;
}
- (void)drawRect:(NSRect)dirtyRect
{
[[NSColor redColor] setFill];
NSRectFill(dirtyRect);
}
- (BOOL)isFlipped {
return YES;
}
- (void)mouseEntered:(NSEvent *)theEvent {
NSRect rect = self.frame;
rect.size.height = 120;
self.frame = rect;
}
- (void)mouseExited:(NSEvent *)theEvent {
NSRect rect = self.frame;
rect.size.height = 90;
self.frame = rect;
}
@end
但我實現了isFlipped方法將座標系翻轉到左上角。 – wigging 2013-03-26 04:38:52
'isFlipped'方法不適用於直接設置。您可以在子類中重寫該方法,以便在使用翻轉座標系時返回YES。只要將'isFlipped'設置爲YES就不會翻轉座標系統。 – Rakesh 2013-03-26 04:43:19
@Gavin:我編輯了答案以包含解釋。 – Rakesh 2013-03-26 04:48:55