[XCODE] View nicht als Subview annehmen / Farbe nicht addieren

Halus

Lt. Junior Grade
Dabei seit
Juli 2013
Beiträge
287
Hallo, ich habe hier ein kleines XCode Projekt, welches auch schon relativ funktionsfähig ist, aber da fehlt eben noch ein paar Kleinigkeiten.

Ich möchte wenn ich einen Button drücke, dass statt einer View eine andere angezeigt wird, an der selben stelle.
Also ich habe im Storyboard 2 UIViews erstellt.
Eine wird immer angezeigt. Wenn ich einen Button drücke dann soll diese ausgeblendet werden und die andere angezeigt werden.
Mein Problem ist, dass wenn ich das mache und den Button drücke einfach nichts angezeigt wird.
Ich vermute, dass das Storyboard annimmt, dass die zweite View eine Subview der ersten ist und daher ebenfals ausgeblendet wird, weiß aber nicht wie ich das verhindern kann. Ausgeblendet werden sie mit hidden.
Ich habe zwar inzwischen versucht die zweite View reinzuprogrammieren, aber irgendwie bringts das nicht. Vor allem wenn ich wieder was austauschen muss.

Ich möchte, auf einer Oberfläche zeichnen, dass mache ich ungefähr so:

Code:
UIGraphicsBeginImageContext(self.view.frame.size);
[drawImage.image drawInRect:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height)];
CGContextSetLineCap(UIGraphicsGetCurrentContext(), kCGLineCapRound);
CGContextSetLineWidth(UIGraphicsGetCurrentContext(), 5.0);
CGContextSetRGBStrokeColor(UIGraphicsGetCurrentContext(), 1.0, 0.0, 0.0, 1.0);
CGContextBeginPath(UIGraphicsGetCurrentContext());
CGContextMoveToPoint(UIGraphicsGetCurrentContext(), lastPoint.x, lastPoint.y);
CGContextAddLineToPoint(UIGraphicsGetCurrentContext(), currentPoint.x, currentPoint.y);
CGContextStrokePath(UIGraphicsGetCurrentContext());
drawImage.image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
 
lastPoint = currentPoint;
Wenn ich das jetzt verwende "addieren" sich die selben Farben. Sprich ich zeichne jetzt und dann fahre ich nochmal drüber, dann wird diese Stelle dunkler, gibt es eine Möglichkeit das zu verhindern?
Zudem wird wenn ich nicht schnell genug bin oder zu langsam, dann sieht man praktisch die Kreisabdrücke, was ich nicht möchte.

Kann mir bitte jemand weiterhelfen?
 

AntiUser

Commander
Dabei seit
Aug. 2010
Beiträge
2.411
Sollen die View Bildschirmfüllend angezeigt werden? Dann würde ich diese einfach erstellen im Storyboard und mittels folgender Funktion vom UIStoryboard
[h=3]instantiateViewControllerWithIdentifier:[/h]


eine Instance des farbigen UiViews holen und laden mittels

pushViewController:animated:
https://developer.apple.com/library/ios/documentation/UIKit/Reference/UINavigationController_Class/Reference/Reference.html#//apple_ref/occ/instm/UINavigationController/pushViewController:animated:

Bei betätigen des zweiten Buttons einfach immer zum neuen View Wechsel und mittels IF den aktuellen View abfragen und hin und her toggeln.

Im InterfaceBuilder würde ich dann einfach den Hintergrund der Views farbig machen.
 
Zuletzt bearbeitet:

Halus

Lt. Junior Grade
Ersteller dieses Themas
Dabei seit
Juli 2013
Beiträge
287
Ich verstehe nicht was du mit dem farbigem View meinst, bzw wie du draufkommst.
Und ich weiß nicht warum du
Im InterfaceBuilder würde ich dann einfach den Hintergrund der Views farbig machen.
erwähnst.

Ich habe alles mit dem Storyboard gemacht.
Die Views füllen nicht alles aus.

Ich versteh nicht wirklich was mit den beiden Methoden gemeint ist. So wie ich das verstehe sind die doch zum Wechseln von Screens.

Also:
View A, wird schon beim Start angezeigt.
Klicke Btn
View A soll verschwinden und View B anzeigen
Klicke BTN
View B verschwinden und A anzeigen.

Nur ist es im Moment so, dass nach dem Btn klick keine View angezeigt wird und bei nochmaligem klicken View A wieder angezeigt wird.
Ich vermute, dass das Storyboard die View B als Subview von A annimt und daher wenn ich A hide ebenfalls B gehidet ist.
Ich schalte es um durch UIView.hidden=true/false.

Ich hoffe, dass das jetzt verständlich ist.


Ich hab da noch eine Frage.
Und zwar habe ich View B jetzt ausprogrammiert.
Und zwar habe ich myView = ViewB. Dann myView.frame=CGREctMake() und diese angezeigt self.view addSubView:myView
Dann müssten doch sämtliche Dinge die ich in ViewB habe ebenfalls in myView sein und die Größe, welche ich erstellt habe bestizen.
Aber wenn ich es so erstelle ist die myView an der selben stelle wie ViewB obwohl andere WErte angegeben werden.
Obwohl es so relativ umständlich ist, da es sich eher um einen Prototypen handelt und oft was ändern muss...

Also: Wie kann ich im Storyboard sagen, dass ViewB keine Subview von A ist?
 
Top