131. Wie kann man ScrollView daran hindern, in eine bestimmte Richtung zu scrollen?
Um beispielsweise das Scrollen in x-Richtung einzuschränken, können Sie die Protokollmethode UIScrollViewDelegate implementieren:
func scrollViewDidScroll(scrollView: UIScrollView) { ifabs(scrollView.contentOffset.x) > 0 { scrollView.contentOffset= CGPointMake(0, scrollView.contentOffset.y) } }
132. So importieren Sie das O-C-Framework in das Swift Framework-Ziel
Nehmen Sie BmobSDK als Beispiel (dasselbe gilt für C/O-C-Frameworks wie CommonCrypto). Wenn Sie BmobSDK zu Link Binary With Libraries hinzufügen und die Anweisung „importBmobSDK“ verwenden, tritt ein Fehler auf: Kein solches Modul
Wenn Wenn Sie versuchen, Bridging-Header zum Importieren von BmobSDK zu verwenden, wird ein weiterer Fehler verursacht.
Das liegt daran, dass Swift Framework keine Bridging-Header-Dateien unterstützt.
Um dieses Problem zu lösen, müssen Sie die folgenden Schritte ausführen:
1) Erstellen Sie das BmobSDK-Verzeichnis im Projektverzeichnis und platzieren Sie BmobSDK.framework in diesem Verzeichnis. Erstellen Sie gleichzeitig in diesem Verzeichnis eine module.map-Datei mit folgendem Inhalt:
module BmobSDK [system] { header"/Users/kmyhy/Documents/Swift/code/第12章/kNote/BmobSDK/BmobSDK.framework/Headers/Bmob.h" link "BmobSDK" export * }
Dadurch können wir BmobSDK als Swift-Modul verwenden.
2) Suchen Sie in den Build-Einstellungen nach Importpfaden (SWIFT_INCLUDE_PATHS) und fügen Sie das BmobSDK-Verzeichnis hinzu. Wie in der Abbildung unten gezeigt:
3) Importieren Sie das BmobSDK-Framework in die Swift-Datei:
Import BmobSDK
133. So verwenden Sie CocoaPods in der App-Erweiterung
Fügen Sie diesen Satz hinzu in der Poddatei:
link_with 'extension name'
Fügen Sie die Bridging-Header-Datei hinzu und legen Sie den Objective-C BridgingHeader fest.
134. Fehler „xxx.pch“ wurde geändert, seit der vorkompilierte Header in Xcode erstellt wurde. Die documentStorageURL-Eigenschaft von DocumentPickerViewController gibt Null zurück.
Bestätigen Sie, dass die App-Gruppen der Container-App, der Document Provider-Erweiterung und der File Provider-Erweiterung korrekt eingestellt sind. Wenn Ausrufezeichen vorhanden sind, beheben Sie diese bitte.
136. Einfügen und Löschen von Zellen in CollectionView
Wie TableView können wir insertItemsAtIndexPaths()/deleteItemsAtIndexPaths() verwenden, um Zellen einzufügen/zu löschen. Der Unterschied besteht darin, dass CollectionView die Operationen beginUpdates()/endUpdates() nicht mehr unterstützt. Das Einfügen/Löschen von Animationen wird standardmäßig nicht unterstützt. Wenn Sie den Standardanimationseffekt nicht wünschen, können Sie das Attribut „animationsEnabled“ von UIView festlegen:
137. UICollectionView in UIScrollView scrollt nicht
BOOL animationsEnabled = [UIView areAnimationsEnabled]; [UIView setAnimationsEnabled:NO]; [myCollectionView reloadItemsAtIndexPaths:myIndexPaths]; [UIView setAnimationsEnabled:animationsEnabled];
138. Warum wird die Zelle falsch angezeigt, wenn sie UITableViewCellStyleValue1 verwendet?
UITableViewCell verfügt über mehrere integrierte Typen, z. B. UITableViewCellStyleDefault, UITableViewCellStyleValue1 und UITableViewCellStyleValue2.
Diese Zellen werden vom SDK vorkonfiguriert und bieten feste integrierte Stile wie Schriftgröße, Farbe, Ausrichtung usw. Wenn Sie diese Konfigurationen ändern möchten, ist es wahrscheinlich, dass die Anzeige nicht normal ist. Beispielsweise kann ein Teil des Textes eine Zeit lang angezeigt werden und dann eine Zeit lang nicht, oder die inhärente Schriftart (und Farbe) wird eine Zeit lang angezeigt , und dann (z. B. durch Klicken auf eine Zelle) wird die geänderte Schriftart (und Farbe) erneut angezeigt.
In diesem Fall ist es besser, Ihre eigene Zelle anzupassen (Unterklasse).
139. Die vonboundingRectWithSize berechnete Größe ist falsch?
Achten Sie darauf, die richtigen Optionsparameter anzugeben. Für UILabel müssen Sie mindestens zwei Optionen verwenden: UsesLineFragmentOrigin und UsesFontLeading:
140. Die bitweise ODER-Operation (|) kann in Swift nicht für mehrere Aufzählungswerte ausgeführt werden
CGRect paragraphRect = [attributedTextboundingRectWithSize:CGSizeMake(300.f, CGFLOAT_MAX) options:(NSStringDrawingUsesLineFragmentOrigin|NSStringDrawingUsesFontLeading) context:nil];
Das Obige ist der Inhalt von iOS-Entwicklungsfragen (11). Weitere verwandte Inhalte finden Sie unter PHP chinesische Website (www.php.cn)!
let options =unsafeBitCast(NSStringDrawingOptions.UsesLineFragmentOrigin.rawValue | NSStringDrawingOptions.UsesFontLeading.rawValue, NSStringDrawingOptions.self) let frame = text.boundingRectWithSize(size, options:options, attributes:D,context:nil)