![](/img/trans.png)
[英]How do you position a larger NSImage inside of a smaller NSImageView programmatically?
[英]How do you move a NSImageView?
我有這種情況:
我有一個NSView,其中包含一個自定義的NSImageView。 我試圖從視圖控制器移動NSImageView,但到目前為止沒有成功。
這是視圖控制器的標題:
#import <Cocoa/Cocoa.h>
#include "MyAppDragAndDropImageView.h"
@interface MyAppViewController : NSViewController <MyAppDragAndDropImageViewDelegate>
@property (nonatomic,assign) IBOutlet MyAppDragAndDropImageView *dragAndDropImageView;
@property (nonatomic,assign) IBOutlet NSTextField *workingFileLabel;
@property (nonatomic,assign) IBOutlet NSTextField *workingFileSizeLabel;
@property (nonatomic,assign) IBOutlet NSButton *clearButton;
-(IBAction)onClearButtonClicked:(id)sender;
所有IBOutlet都已從Interface Builder連接。
我在視圖控制器中使用此代碼來移動自定義NSImageView ...
-(void)awakeFromNib
{
//dragAndDropImageView frame
NSRect ddivFrame = [dragAndDropImageView frame];
ddivFrame.origin.x = SOME_NUMBER;
ddivFrame.origin.y = SOME_NUMBER;
[dragAndDropImageView setFrame:ddivFrame];
[dragAndDropImageView setNeedsDisplay:YES];
}
......但沒有任何反應!
使用NSLog我發現框架“x”和“y”已經更新,但它顯示在舊位置! 有線索嗎?
謝謝
我找到了一個解決方案:
-(void)awakeFromNib
{
//dragAndDropImageView frame
NSRect ddivFrame = [dragAndDropImageView frame];
ddivFrame.origin.x = SOME_NUMBER;
ddivFrame.origin.y = SOME_NUMBER;
[[dragAndDropImageView animator] setFrame:ddivFrame];
}
這樣做完美無瑕!
dragAndDropImageView
和clearButton
在視圖中居中。 在awakeFromNib
我將它們設置在屏幕外,然后我使用NSAnimation將它們滑入。
為什么不在nib中將它們設置為hidden / alphaValue
為0
,然后讓你的NSViewAnimation顯示它們(淡入它們)並將它們移動到位?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.