2012-04-09 7 views
1

(xCode 4.3.2, ARC, Storyboard) Ich habe ein Master/Detail-Projekt und der MasterViewController ist ein UITableViewController, wie üblich. Es hat eine Navigationsleiste am oberen Rand und eine Symbolleiste am unteren Rand. Ich habe eine benutzerdefinierte Unteransicht erstellt, die ich programmgesteuert unter viewDidLoad geladen habe.Disable Subview von UITableview von Scrollen

Es lädt gut und ist oben wie ich will, aber wenn der Benutzer die Tabellenansicht scrollt, scrollt die Unteransicht auch. Ich brauche die Unteransicht, um "unten" zu bleiben.

enter image description here

Hier ist der Code, den ich die Subview hinzufügen verwendet:

CGRect totalFrame = CGRectMake(0, 314, 320, 58); 
    UIView *totalBG = [[UIView alloc] initWithFrame:totalFrame]; 
    totalBG.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"totalBG.png"]]; 
    [self.view addSubview:totalBG]; 

    CGRect totalLabelFrame = CGRectMake(12, 12, 80, 40); 
    totalLabelBG = [[UILabel alloc] initWithFrame:totalLabelFrame]; 
    totalLabelBG.backgroundColor = [UIColor clearColor]; 
    totalLabelBG.text = @"Total:"; 
    [totalLabelBG setFont:[UIFont boldSystemFontOfSize:22]]; 
    totalLabelBG.userInteractionEnabled = NO; 
    totalLabelBG.textColor = [UIColor whiteColor]; 
    totalLabelBG.shadowColor = [UIColor blackColor]; 
    totalLabelBG.shadowOffset = CGSizeMake(0, 1); 
    [totalBG addSubview:totalLabelBG]; 

ich in viewDidLoad userInteractionEnabled auf NO versucht Einstellung und eine berührungsempfindlichen Detektor und Einstellen des totalLabelBG.center Eigentum und keiner hat funktioniert.

Ich habe auch eine Menge von Threads beim Deaktivieren von Scrollen für Webviews gelesen, aber nichts relevantes gefunden.

Ich fand eine andere SOF-Frage mit einer Antwort, die möglicherweise funktioniert oder nicht funktioniert, aber der Benutzer hat die Antwort nicht erläutert. "The trick is to adjust the frame of the "non-scrollable" subview inside -layoutSubviews."

+0

Haben Sie eine Lösung gefunden? – filou

Antwort

10

I erreicht das gewünschte Ergebnis durch die subview zum UINavigationController Container wie folgt ergänzt:

[self.navigationController.view addSubview:totalBG]; 
0

Wie oben in der Antwort. Fügen Sie diese bestimmte Unteransicht zu jeder Unteransicht außerhalb der UIScrollView-Instanz hinzu. Wenn es nicht zu scrollen gilt, ist es nicht sinnvoll, es zuerst in die Scroll-Ansicht einzufügen. Lassen Sie die Bildlaufansicht nur die Höhe bis zum oberen Ende der Gesamtsummenansicht anzeigen