131. ScrollView が特定の方向にスクロールするのを制限するにはどうすればよいですか?
たとえば、x 方向のスクロールを制限するには、UIScrollViewDelegate プロトコル メソッドを実装できます:
func scrollViewDidScroll(scrollView: UIScrollView) { ifabs(scrollView.contentOffset.x) > 0 { scrollView.contentOffset= CGPointMake(0, scrollView.contentOffset.y) } }
132. Swift Framework ターゲットに O-C フレームワークをインポートする方法
BmobSDK を例に挙げます (C にも同じことが当てはまります) CommonCrypto などの /O-C フレームワーク)、BmobSDK をライブラリとバイナリのリンクに追加するときに、「importBmobSDK」ステートメントを使用すると、エラーが表示されます: no such module
ブリッジング ヘッダーを使用して BmobSDK をインポートしようとすると、別のエラーが発生します。 。
これは、Swift Framework がヘッダー ファイルのブリッジングをサポートしていないためです。
この問題を解決するには、次の手順を実行する必要があります:
1) プロジェクト ディレクトリに BmobSDK ディレクトリを作成し、このディレクトリに BmobSDK.framework を配置します。同時に、このディレクトリに次の内容の module.map ファイルを作成します:
module BmobSDK [system] { header"/Users/kmyhy/Documents/Swift/code/第12章/kNote/BmobSDK/BmobSDK.framework/Headers/Bmob.h" link "BmobSDK" export * }
これにより、BmobSDK を Swift モジュールとして使用できるようになります。
2) ビルド設定で、インポート パス (SWIFT_INCLUDE_PATHS) を見つけて、BmobSDK ディレクトリを追加します。以下の図に示すように:
3) BmobSDK フレームワークを Swift ファイルにインポートします:
import BmobSDK
133。App Extension で CocoaPods を使用する方法
次の文を Podfile に追加します:
link_with 'name of extension'
bri headerdging ファイルを追加し、Objective-C BridgingHeader を設定します。
134. プリコンパイルされたヘッダーが nil でビルドされたため、エラー「xxx.pch」が変更されました。
コンテナアプリのアプリグループ、ドキュメントプロバイダー拡張子、ファイルプロバイダー拡張子が正しく設定されていることを確認し、感嘆符がある場合は修正してください。
136. CollectionView でのセルの挿入と削除
TableView と同様に、insertItemsAtIndexPaths()/deleteItemsAtIndexPaths() を使用してセルを挿入/削除できます。違いは、CollectionView が beginUpdates()/endUpdates() 操作をサポートしなくなったことです。デフォルトで挿入/削除アニメーションがサポートされている場合は、UIView のanimationsEnabled 属性を設定できます:
BOOL animationsEnabled = [UIView areAnimationsEnabled]; [UIView setAnimationsEnabled:NO]; [myCollectionView reloadItemsAtIndexPaths:myIndexPaths]; [UIView setAnimationsEnabled:animationsEnabled];
138. セルは UITableViewCellStyleValue1 を使用していますが、正しく表示されないのはなぜですか?
UITableViewCell には、UITableViewCellStyleDefault、UITableViewCellStyleValue1、UITableViewCellStyleValue2 など、いくつかの組み込みタイプがあります。
これらのセルは SDK によって事前に設定されており、フォント サイズ、色、配置などの固定の組み込みスタイルが表示されます。これらの設定を変更する場合、一部のテキストがしばらく表示された後、しばらく表示されなくなったり、固有のフォント (および色) がしばらく表示されたりするなど、表示が正常ではなくなる可能性があります。をクリックすると (セルをクリックするなど)、変更されたフォント (および色) が再度表示されます。
この場合は、独自のセルをカスタマイズ (サブクラス化) することをお勧めします。
139.boundingRectWithSizeで計算されたサイズが間違っていますか?
正しいオプションパラメータを指定するように注意してください。 UILabel の場合、UsesLineFragmentOrigin と UsesFontLeading:
CGRect paragraphRect = [attributedTextboundingRectWithSize:CGSizeMake(300.f, CGFLOAT_MAX) options:(NSStringDrawingUsesLineFragmentOrigin|NSStringDrawingUsesFontLeading) context:nil];
let options =unsafeBitCast(NSStringDrawingOptions.UsesLineFragmentOrigin.rawValue | NSStringDrawingOptions.UsesFontLeading.rawValue, NSStringDrawingOptions.self) let frame = text.boundingRectWithSize(size, options:options, attributes:D,context:nil)