Fragen zur iOS-Entwicklung (11)

黄舟
Freigeben: 2023-03-05 06:56:01
Original
1309 Leute haben es durchsucht

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)
}
}
Nach dem Login kopieren

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 *
}
Nach dem Login kopieren

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

Überprüfen Sie, ob UIScrollView gescrollt wird. Legen Sie das Delegatenattribut fest und prüfen Sie, ob die scrollViewDidScroll-Methode im Delegaten implementiert ist. Wenn ja, löschen Sie bitte die Methode (ein einfaches Löschen des Delegatenattributs funktioniert nicht).
BOOL animationsEnabled = [UIView areAnimationsEnabled];
[UIView setAnimationsEnabled:NO];
[myCollectionView reloadItemsAtIndexPaths:myIndexPaths];
[UIView setAnimationsEnabled:animationsEnabled];
Nach dem Login kopieren
Überprüfen Sie auch die Breite (oder Breitenbeschränkung), Höhe (oder Höhenbeschränkung) und Listeninhaltsgröße von UICollectionView, denn wenn der Listeninhalt kleiner als die Breite (oder Höhe) von UICollectionView ist, bewegt sich die Bildlaufleiste in diese Richtung wird nicht angezeigt.

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

Beachten Sie, dass dieses Problem in iOS 8.3 SDK Beta 1 (12F5027d) behoben ist. Für SDKs niedriger als diese Version können wir stattdessen den folgenden Code verwenden:
CGRect paragraphRect =
[attributedTextboundingRectWithSize:CGSizeMake(300.f, CGFLOAT_MAX)
options:(NSStringDrawingUsesLineFragmentOrigin|NSStringDrawingUsesFontLeading)
context:nil];
Nach dem Login kopieren



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)
Nach dem Login kopieren

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage