2016-08-05 13 views
0

Meine App besteht aus einem Kartenspiel. Jede Karte selbst wird in einer Klasse namens draggableview erstellt. Draggableview hat eine Scrollansicht, so dass der Benutzer durch eine Reihe von Bildern scrollen kann, die für die Karte relevant sind. In der ersten Ansicht gibt es Schaltflächen, die ich in draggableview.xib erstellt habe und deren Methoden in der dragableview-Klasse enthalten sind. Wenn Sie jedoch an der ersten Ansicht vorbei blättern, haben alle anderen Ansichten diese Schaltflächen nicht.Einschränkungen mit mehreren Unteransichten

EDIT: Ich habe mein Problem teilweise gelöst. In initwithView habe ich jede Schaltfläche als Unteransicht von draggableview hinzugefügt. Jetzt erscheinen die Schaltflächen in allen Ansichten von scrollview. Im Storyboard habe ich neue Einschränkungen gelöscht und hinzugefügt. Und im Storyboard bewegen sich die Schaltflächen entsprechend. Im Simulator stecken sie jedoch in der rechten Ecke des Bildschirms.

Für diesen ersten Versuch habe ich dies zuerst mit einem Knopf (Review-Taste) getan.

meine Initwithframe-Methode:

- (id)initWithFrame:(CGRect)frame 
{ 
    self = [super initWithFrame:frame]; 
    if (self) { 
     [self addSubviewFromNib]; 
     [self setupView]; 
     panGestureRecognizer = [[UIPanGestureRecognizer  alloc]initWithTarget:self action:@selector(beingDragged:)]; 
     cardWidth = frame.size.width; 
     cardHeight = frame.size.height; 
     type = 0; 
     panGestureRecognizer.delegate = self; 
     panGestureRecognizer.cancelsTouchesInView = NO; 
     _backgroundScrollView.panGestureRecognizer.cancelsTouchesInView = NO; 

     likeBadge.image = [UIImage imageNamed:@"likeBadge"]; 
     likeBadge.alpha = 0; 
     likeBadge.layer.zPosition=99; 
     passBadge.image = [UIImage imageNamed:@"passBadge"]; 
     passBadge.alpha = 0; 
     passBadge.layer.zPosition=99; 
     self.backgroundScrollView.contentSize = self.bounds.size; 
     [self addSubview: reviewButton]; 
     [self addGestureRecognizer:panGestureRecognizer]; 
    } 
    return self; 
} 

Wie es in Simulator aussieht: enter image description here

+0

Welche sind die Tasten? 'likeBadge' und' passBadge'? Und sind sie Kinder der ziehbaren Ansicht, nicht die Scrollansicht? Das würde meine Antwort dramatisch ändern. – danh

+0

Nein - die Schaltflächen, über die ich spreche, werden, wie ich annehme, von addSubViewFromNib hochgeladen (siehe meinen früheren Kommentar zu meinem Fehler). Sie sind speziell: Telefon, Karte, Menü, Überprüfung und Teilen Tasten. Und ja, sie sind Kinder von draggableview (die Nib-Datei), nicht die Bildlaufansicht. – Matt

+0

Haben Sie die Farbe der primären Inhaltsansicht deaktiviert? Das ist anders als das Setzen von Alpha auf Null. – danh

Antwort

0

Zusätzlich jede Taste als Subview draggableView in Initwithframe auf dem Hinzufügen, ich auch jede Schaltfläche Einschränkungen programmatisch hinzugefügt. Aus irgendeinem Grund erlaubte es mir, die Knöpfe zu bewegen (während nichts im Storyboard erfolgreich war) und jetzt sind sie auf allen Ansichten von scrollview.

Verwandte Themen