Ich nehme das Bild vom Schieberegler (UIImageView) und füge mein Label hinzu. Schön und sauber.
%Vor%Dann ändern Sie den label.text wann immer Sie möchten.
Hinweis: Die Unteransichtsreihenfolge von UISlider kann sich in Zukunft ändern, es ist jedoch unwahrscheinlich, dass der Daumen nicht mehr die oberste Ansicht ist, da dies immer der wichtigste Interaktionspunkt in einem Schieberegler ist.
Swift 3 - Detaillierteres Beispiel (verlinke deinen Slider in IB)
%Vor% Fügen Sie in Interface Builder einen UISlider
und einen UILabel
hinzu. Erstellen Sie IBOutlets, um auf sie im Code zuzugreifen, und fügen Sie eine IBAction hinzu, um auf Änderungen des Schiebereglerwerts zu reagieren.
Dann schreiben Sie in Ihrem Code:
%Vor%BEARBEITEN: Fügen Sie Folgendes hinzu, um den Schieberegler und die Beschriftung mit Code zu erstellen:
%Vor% Sie können auf das Rect für die Thumb-Bildansicht des Schiebereglers mit -thumbRectForBounds:trackRect:value:]
zugreifen. Wenn Sie also eine UILabel
-Untersicht hinzufügen, können Sie sie relativ zur Thumb-Bildansicht in -layoutSubviews
mit diesem zurückgegebenen Rect ausrichten.
Wenn Sie jedoch Ihr Layout mit Autolayout an das Thumb Image anpassen möchten, müssen Sie direkt auf den UIImageView
des Thumbs zugreifen. Ich bin nicht scharf darauf, die Subviews von UIKit
kit-Komponenten allgemein zu durchsuchen, aber ich denke, dass Sie Details der öffentlichen API verwenden können, um nach der Bildansicht in einer zukunftssicheren Weise zu suchen:
- (UIImageView*) thumbImageView {
__block UIImageView *imageView = nil;
[self.subviews enumerateObjectsWithOptions:NSEnumerationReverse usingBlock:^(UIImageView *candidate, NSUInteger idx, BOOL *stop)
{
if ([candidate isKindOfClass:[UIImageView class]] && candidate.image ==
[self thumbImageForState:UIControlStateNormal])
{
imageView = candidate;
*stop = YES;
}
}];
return imageView;
}
Die API bietet die Möglichkeit, für den Daumen eine UIImage
festzulegen, sodass Sie diese als Test verwenden können, um sicherzustellen, dass Sie keine andere Bildansicht erhalten. Dies ist noch sicherer, wenn Sie explizit ein Thumb-Bild selbst festlegen (da es nicht unmöglich ist , dass der Schieberegler möglicherweise geändert wird, um das Thumb Image in Zukunft zu zeichnen ...). Außerdem ist die Daumenbildansicht derzeit die letzte Unteransicht (nicht garantiert, vorwärts), also mache ich hier eine umgekehrte Aufzählung, um sie hoffentlich so schnell wie möglich zu bekommen, ohne Annahmen über ihren Index zu machen.
NB: Ich musste meine Daumenbeschriftung träge erstellen, da die Unteransichten von UISlider
so zu sein scheinen.
Eine einfache Implementierung einer benutzerdefinierten Klasse in Swift 3.2. Das funktioniert gut für mich.
%Vor%Ich hoffe es hilft :)
Tags und Links objective-c iphone ios uislider