Я разрешаю своему окну автоматически просматривать видимый экран. В этом коде нет проблем.NSImageView исчезает без причины
Но проблема здесь. Мне нужно добавить ImageViews в окно, и, конечно же, они также должны иметь возможность изменять размер.
код для создания ImageViews и сделать окно подгонку текущего видимого
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
{
// Insert code here to initialize your application
int x,y;
NSInteger rowCounter,gapX,gapY;
rowNumber=5;
rowCounter=0;
gapX=0;
gapY=0;
personNumber=10;
startX=20;
startY=20;
NSRect rect;
NSSize size;
NSScreen *scren=[NSScreen mainScreen];
rect=scren.visibleFrame;
y=rect.size.height;
x=rect.size.width;
NSLog(@"%s%s%d%s%d","screen"," y size=",y," x size=",x);
y=window.frame.size.height;
x=window.frame.size.width;
NSLog(@"%s%s%d%s%d"," window"," y size=",y," x size=",x);
timer1 =[NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(resizeWindow1) userInfo:nil repeats:YES];
rahmen=[[NSMutableArray alloc] initWithCapacity:25];
NSPoint p;
y=rect.size.height;
x=rect.size.width;
size.height=y;
size.width=x;
p.x= rect.origin.x;
p.y= rect.origin.y+y;
[window setContentSize:size];
[window setFrameTopLeftPoint:p];
width =x-(20*(personNumber/2));
width=(width/(personNumber/2))-(20/(personNumber/2));
NSLog(@"%s%ld","\n width: ",(long)width);
high= y-(20*rowNumber);
high=high/rowNumber-(20/rowNumber);
NSLog(@"%s%ld","\n high: ",(long)high);
for (indexRahmen=0; indexRahmen<25;) {
if (indexRahmen>0 && indexRahmen%(personNumber/2)==0) {
rowCounter=rowCounter+1;
gapX=0;
gapY=gapY+1;
}
else if (indexRahmen%(personNumber/2)!=0){
gapX=gapX+1;
}
if (rowCounter==rowNumber) {
rowCounterr=rowNumber-1;
gapY=gapY-1;
}
rect=NSMakeRect(startX+(width*(indexRahmen%(personNumber/2)))+(gapX*20),(startY+(rowCounter*high)+(gapY*20)),width, high);
NSImageView *imageView=[[NSImageView alloc] initWithFrame:rect];
imageView.image = [NSImage imageNamed:@"umrandung.png"];
[rahmen insertObject:imageView atIndex:indexRahmen];
[window1view.self addSubview:imageView];
NSLog(@"%s%ld","\n IndexZahl: ",(long)indexRahmen);
indexRahmen=indexRahmen+1;
}
}
действием изменения размеров наречено timer1 почти такой же, за исключением того, что:
NSImageView *imageView= [rahmen objectAtIndex:indexRahmen];
imageView.frame= rect;
imageView.image = [NSImage imageNamed:@"umrandung.png"];
[rahmen insertObject:imageView atIndex:indexRahmen];
и ImageView не добавляется к subview window1view
и странная вещь, которая происходит, заключается в том, что 1. NSImageView исчезает, но когда я проверяю координаты, они находятся на правильном так что я не знаю, почему он исчезает.
Там причина, почему мы используем английский язык везде (даже в именах переменных);) Если они имеют смысл они говорят другим разработчикам много о том, что вы хотите сделать/означать. * Я понимаю, что вы имеете в виду, но есть миллионы других разработчиков, которые не имеют ни малейшего представления о том, что вы думаете в своем коде;) – HAS
Я изменил теперь имена переменных – killerwakka