├── Pods ├── Headers │ ├── Private │ │ ├── YYText │ │ │ ├── YYText.h │ │ │ ├── YYLabel.h │ │ │ ├── YYTextView.h │ │ │ ├── YYTextInput.h │ │ │ ├── YYTextLine.h │ │ │ ├── YYTextParser.h │ │ │ ├── UIView+YYText.h │ │ │ ├── YYTextArchiver.h │ │ │ ├── YYTextAttribute.h │ │ │ ├── YYTextLayout.h │ │ │ ├── YYTextUtilities.h │ │ │ ├── YYTextWeakProxy.h │ │ │ ├── YYTextAsyncLayer.h │ │ │ ├── YYTextMagnifier.h │ │ │ ├── YYTextRunDelegate.h │ │ │ ├── YYTextTransaction.h │ │ │ ├── UIPasteboard+YYText.h │ │ │ ├── YYTextContainerView.h │ │ │ ├── YYTextDebugOption.h │ │ │ ├── YYTextEffectWindow.h │ │ │ ├── YYTextRubyAnnotation.h │ │ │ ├── YYTextSelectionView.h │ │ │ ├── YYTextKeyboardManager.h │ │ │ ├── NSAttributedString+YYText.h │ │ │ └── NSParagraphStyle+YYText.h │ │ ├── YYImage │ │ │ ├── YYImage.h │ │ │ ├── YYFrameImage.h │ │ │ ├── YYImageCoder.h │ │ │ ├── YYAnimatedImageView.h │ │ │ └── YYSpriteSheetImage.h │ │ └── SDWebImage │ │ │ ├── SDImageCache.h │ │ │ ├── UIImage+GIF.h │ │ │ ├── SDWebImageCompat.h │ │ │ ├── SDWebImageDecoder.h │ │ │ ├── SDWebImageManager.h │ │ │ ├── UIButton+WebCache.h │ │ │ ├── SDWebImageDownloader.h │ │ │ ├── SDWebImageOperation.h │ │ │ ├── SDWebImagePrefetcher.h │ │ │ ├── UIImage+MultiFormat.h │ │ │ ├── UIImageView+WebCache.h │ │ │ ├── NSData+ImageContentType.h │ │ │ ├── UIView+WebCacheOperation.h │ │ │ ├── SDWebImageDownloaderOperation.h │ │ │ └── UIImageView+HighlightedWebCache.h │ └── Public │ │ ├── YYText │ │ ├── YYLabel.h │ │ ├── YYText.h │ │ ├── YYTextView.h │ │ ├── UIView+YYText.h │ │ ├── YYTextInput.h │ │ ├── YYTextLayout.h │ │ ├── YYTextLine.h │ │ ├── YYTextParser.h │ │ ├── YYTextArchiver.h │ │ ├── YYTextAttribute.h │ │ ├── YYTextUtilities.h │ │ ├── YYTextWeakProxy.h │ │ ├── YYTextAsyncLayer.h │ │ ├── YYTextDebugOption.h │ │ ├── YYTextMagnifier.h │ │ ├── YYTextRunDelegate.h │ │ ├── YYTextTransaction.h │ │ ├── UIPasteboard+YYText.h │ │ ├── YYTextContainerView.h │ │ ├── YYTextEffectWindow.h │ │ ├── YYTextRubyAnnotation.h │ │ ├── YYTextSelectionView.h │ │ ├── NSParagraphStyle+YYText.h │ │ ├── YYTextKeyboardManager.h │ │ └── NSAttributedString+YYText.h │ │ ├── YYImage │ │ ├── YYImage.h │ │ ├── YYFrameImage.h │ │ ├── YYImageCoder.h │ │ ├── YYSpriteSheetImage.h │ │ └── YYAnimatedImageView.h │ │ └── SDWebImage │ │ ├── UIImage+GIF.h │ │ ├── SDImageCache.h │ │ ├── SDWebImageCompat.h │ │ ├── SDWebImageDecoder.h │ │ ├── SDWebImageManager.h │ │ ├── UIButton+WebCache.h │ │ ├── SDWebImageDownloader.h │ │ ├── SDWebImageOperation.h │ │ ├── SDWebImagePrefetcher.h │ │ ├── UIImage+MultiFormat.h │ │ ├── UIImageView+WebCache.h │ │ ├── NSData+ImageContentType.h │ │ ├── UIView+WebCacheOperation.h │ │ ├── SDWebImageDownloaderOperation.h │ │ └── UIImageView+HighlightedWebCache.h ├── Target Support Files │ ├── YYText │ │ ├── YYText-dummy.m │ │ ├── YYText-prefix.pch │ │ └── YYText.xcconfig │ ├── YYImage │ │ ├── YYImage-dummy.m │ │ ├── YYImage-prefix.pch │ │ └── YYImage.xcconfig │ ├── SDWebImage │ │ ├── SDWebImage-dummy.m │ │ ├── SDWebImage-prefix.pch │ │ └── SDWebImage.xcconfig │ └── Pods-XYFaceKeyboardExample │ │ ├── Pods-XYFaceKeyboardExample-dummy.m │ │ ├── Pods-XYFaceKeyboardExample.debug.xcconfig │ │ ├── Pods-XYFaceKeyboardExample.release.xcconfig │ │ ├── Pods-XYFaceKeyboardExample-acknowledgements.markdown │ │ └── Pods-XYFaceKeyboardExample-frameworks.sh ├── SDWebImage │ ├── SDWebImage │ │ ├── UIImage+MultiFormat.h │ │ ├── SDWebImageOperation.h │ │ ├── UIImage+GIF.h │ │ ├── SDWebImageDecoder.h │ │ ├── NSData+ImageContentType.h │ │ ├── UIView+WebCacheOperation.h │ │ ├── NSData+ImageContentType.m │ │ ├── SDWebImageCompat.m │ │ ├── SDWebImageCompat.h │ │ └── UIView+WebCacheOperation.m │ └── LICENSE ├── Manifest.lock ├── YYText │ ├── YYText │ │ ├── Utility │ │ │ ├── NSParagraphStyle+YYText.h │ │ │ ├── YYTextTransaction.h │ │ │ ├── YYTextWeakProxy.h │ │ │ ├── UIPasteboard+YYText.h │ │ │ ├── YYTextWeakProxy.m │ │ │ ├── YYTextAsyncLayer.h │ │ │ ├── YYTextTransaction.m │ │ │ └── UIView+YYText.h │ │ ├── String │ │ │ ├── YYTextArchiver.h │ │ │ ├── YYTextRunDelegate.h │ │ │ ├── YYTextRunDelegate.m │ │ │ ├── YYTextRubyAnnotation.h │ │ │ ├── YYTextParser.h │ │ │ └── YYTextRubyAnnotation.m │ │ ├── YYText.h │ │ └── Component │ │ │ ├── YYTextEffectWindow.h │ │ │ ├── YYTextContainerView.h │ │ │ ├── YYTextMagnifier.h │ │ │ ├── YYTextSelectionView.h │ │ │ ├── YYTextInput.h │ │ │ ├── YYTextKeyboardManager.h │ │ │ ├── YYTextLine.h │ │ │ └── YYTextDebugOption.h │ └── LICENSE ├── YYImage │ ├── LICENSE │ └── YYImage │ │ ├── YYSpriteSheetImage.m │ │ └── YYImage.h └── Pods.xcodeproj │ └── xcuserdata │ └── XY.xcuserdatad │ └── xcschemes │ ├── xcschememanagement.plist │ ├── YYText.xcscheme │ ├── YYImage.xcscheme │ ├── SDWebImage.xcscheme │ └── Pods-XYFaceKeyboardExample.xcscheme ├── XYFaceKeyboard ├── XYImgs │ ├── XYBears │ │ ├── x00.gif │ │ ├── x01.gif │ │ ├── x02.gif │ │ ├── x03.gif │ │ ├── x04.gif │ │ ├── x05.gif │ │ ├── x06.gif │ │ ├── x07.gif │ │ ├── x08.gif │ │ ├── x09.gif │ │ ├── x10.gif │ │ ├── x11.gif │ │ ├── x12.gif │ │ ├── x13.gif │ │ ├── x14.gif │ │ ├── x15.gif │ │ ├── x16.gif │ │ ├── x17.gif │ │ ├── x18.gif │ │ ├── x19.gif │ │ ├── x20.gif │ │ ├── x21.gif │ │ ├── x22.gif │ │ ├── x23.gif │ │ ├── x24.gif │ │ ├── x25.gif │ │ ├── x26.gif │ │ ├── x27.gif │ │ ├── x28.gif │ │ ├── x29.gif │ │ ├── x30.gif │ │ ├── x31.gif │ │ ├── x32.gif │ │ ├── x33.gif │ │ ├── x34.gif │ │ ├── x35.gif │ │ ├── x36.gif │ │ ├── x37.gif │ │ ├── x38.gif │ │ ├── x39.gif │ │ ├── x40.gif │ │ ├── x41.gif │ │ └── x42.gif │ ├── XYFaces │ │ ├── cry.gif │ │ ├── pb0.gif │ │ ├── pb1.gif │ │ ├── pb10.gif │ │ ├── pb11.gif │ │ ├── pb12.gif │ │ ├── pb13.gif │ │ ├── pb14.gif │ │ ├── pb15.gif │ │ ├── pb16.gif │ │ ├── pb17.gif │ │ ├── pb18.gif │ │ ├── pb19.gif │ │ ├── pb2.gif │ │ ├── pb20.gif │ │ ├── pb21.gif │ │ ├── pb22.gif │ │ ├── pb23.gif │ │ ├── pb24.gif │ │ ├── pb25.gif │ │ ├── pb26.gif │ │ ├── pb27.gif │ │ ├── pb28.gif │ │ ├── pb29.gif │ │ ├── pb3.gif │ │ ├── pb30.gif │ │ ├── pb31.gif │ │ ├── pb32.gif │ │ ├── pb33.gif │ │ ├── pb34.gif │ │ ├── pb35.gif │ │ ├── pb36.gif │ │ ├── pb37.gif │ │ ├── pb38.gif │ │ ├── pb39.gif │ │ ├── pb4.gif │ │ ├── pb40.gif │ │ ├── pb41.gif │ │ ├── pb42.gif │ │ ├── pb43.gif │ │ ├── pb44.gif │ │ ├── pb45.gif │ │ ├── pb46.gif │ │ ├── pb47.gif │ │ ├── pb48.gif │ │ ├── pb49.gif │ │ ├── pb5.gif │ │ ├── pb50.gif │ │ ├── pb51.gif │ │ ├── pb52.gif │ │ ├── pb53.gif │ │ ├── pb6.gif │ │ ├── pb7.gif │ │ ├── pb8.gif │ │ ├── pb9.gif │ │ ├── h_thumb.gif │ │ ├── k_thumb.gif │ │ ├── laugh.gif │ │ ├── t_thumb.gif │ │ ├── unheart.gif │ │ ├── x_thumb.gif │ │ ├── bb_thumb.gif │ │ ├── bba_thumb.gif │ │ ├── bs2_thumb.gif │ │ ├── bs_thumb.gif │ │ ├── bz_thumb.gif │ │ ├── cj_thumb.gif │ │ ├── cza_thumb.gif │ │ ├── gza_thumb.gif │ │ ├── hsa_thumb.gif │ │ ├── kl_thumb.gif │ │ ├── mb_thumb.gif │ │ ├── nm_thumb.gif │ │ ├── ok_thumb.gif │ │ ├── qq_thumb.gif │ │ ├── sb_thumb.gif │ │ ├── sk_thumb.gif │ │ ├── sw_thumb.gif │ │ ├── tza_thumb.gif │ │ ├── vw_thumb.gif │ │ ├── wg_thumb.gif │ │ ├── wq_thumb.gif │ │ ├── ws_thumb.gif │ │ ├── ye_thumb.gif │ │ ├── yhh_thumb.gif │ │ ├── yw_thumb.gif │ │ ├── yx_thumb.gif │ │ ├── zhh_thumb.gif │ │ ├── zy_thumb.gif │ │ ├── angrya_thumb.gif │ │ ├── cool_thumb.gif │ │ ├── crazya_thumb.gif │ │ ├── dizzya_thumb.gif │ │ ├── geili_thumb.gif │ │ ├── good_thumb.gif │ │ ├── hatea_thumb.gif │ │ ├── hearta_thumb.gif │ │ ├── heia_thumb.gif │ │ ├── kbsa_thumb.gif │ │ ├── ldln_thumb.gif │ │ ├── lovea_thumb.gif │ │ ├── money_thumb.gif │ │ ├── sada_thumb.gif │ │ ├── shamea_thumb.gif │ │ ├── sleepa_thumb.gif │ │ ├── smilea_thumb.gif │ │ ├── sweata_thumb.gif │ │ ├── tootha_thumb.gif │ │ └── sleepya_thumb.gif │ ├── XYCaitiao │ │ ├── xy_1.gif │ │ ├── xy_2.gif │ │ ├── xy_3.gif │ │ ├── xy_4.gif │ │ ├── xy_5.gif │ │ ├── xy_6.gif │ │ └── xy_7.gif │ └── XYImgs │ │ ├── button.png │ │ ├── menuBtn1.gif │ │ ├── menuBtn2.gif │ │ ├── menuBtn3.gif │ │ ├── menuBtn4.gif │ │ ├── xyBtn0.png │ │ ├── xyBtn1.png │ │ ├── xyBtn2.png │ │ ├── xyBtn3.png │ │ ├── icon-biaoqing.png │ │ ├── icon_emotion.png │ │ ├── icon_emotion@2x.png │ │ ├── icon_emotion@3x.png │ │ ├── xyBtnSelected0.png │ │ ├── xyBtnSelected1.png │ │ ├── xyBtnSelected2.png │ │ ├── xyBtnSelected3.png │ │ ├── del_emoji_normal.png │ │ └── del_emoji_select.png ├── XYViews │ ├── XYPageControl.h │ ├── XYKEYBOARDCONFIG.h │ ├── UIButton+XYButton.h │ ├── XYFaceKeyboard.h │ ├── XYInputBox.h │ └── XYPageControl.m └── XYSource │ ├── XYFace1.plist │ ├── XYFace2.plist │ ├── XYFace3.plist │ └── XYFace0.plist ├── podfile ├── XYFaceKeyboardExample ├── XYShowImage │ ├── XYFaceShow1.gif │ └── XYFaceShow2.gif ├── ViewController.h ├── AppDelegate.h ├── main.m ├── Assets.xcassets │ └── AppIcon.appiconset │ │ └── Contents.json ├── Info.plist ├── Base.lproj │ ├── Main.storyboard │ └── LaunchScreen.storyboard ├── AppDelegate.m └── ViewController.m ├── XYFaceKeyboardExample.xcodeproj ├── xcuserdata │ └── XY.xcuserdatad │ │ ├── xcdebugger │ │ └── Breakpoints_v2.xcbkptlist │ │ └── xcschemes │ │ └── xcschememanagement.plist └── project.xcworkspace │ └── contents.xcworkspacedata ├── XYFaceKeyboardExample.xcworkspace ├── contents.xcworkspacedata └── xcuserdata │ └── XY.xcuserdatad │ └── xcdebugger │ └── Breakpoints_v2.xcbkptlist ├── Podfile.lock ├── XYFaceKeyboardExampleTests ├── Info.plist └── XYFaceKeyboardExampleTests.m ├── XYFaceKeyboardExampleUITests ├── Info.plist └── XYFaceKeyboardExampleUITests.m ├── LICENSE ├── XYFaceKeyboard.podspec └── README.md /Pods/Headers/Private/YYText/YYText.h: -------------------------------------------------------------------------------- 1 | ../../../YYText/YYText/YYText.h -------------------------------------------------------------------------------- /Pods/Headers/Public/YYText/YYLabel.h: -------------------------------------------------------------------------------- 1 | ../../../YYText/YYText/YYLabel.h -------------------------------------------------------------------------------- /Pods/Headers/Public/YYText/YYText.h: -------------------------------------------------------------------------------- 1 | ../../../YYText/YYText/YYText.h -------------------------------------------------------------------------------- /Pods/Headers/Private/YYImage/YYImage.h: -------------------------------------------------------------------------------- 1 | ../../../YYImage/YYImage/YYImage.h -------------------------------------------------------------------------------- /Pods/Headers/Private/YYText/YYLabel.h: -------------------------------------------------------------------------------- 1 | ../../../YYText/YYText/YYLabel.h -------------------------------------------------------------------------------- /Pods/Headers/Public/YYImage/YYImage.h: -------------------------------------------------------------------------------- 1 | ../../../YYImage/YYImage/YYImage.h -------------------------------------------------------------------------------- /Pods/Headers/Private/YYText/YYTextView.h: -------------------------------------------------------------------------------- 1 | ../../../YYText/YYText/YYTextView.h -------------------------------------------------------------------------------- /Pods/Headers/Public/YYText/YYTextView.h: -------------------------------------------------------------------------------- 1 | ../../../YYText/YYText/YYTextView.h -------------------------------------------------------------------------------- /Pods/Headers/Private/YYImage/YYFrameImage.h: -------------------------------------------------------------------------------- 1 | ../../../YYImage/YYImage/YYFrameImage.h -------------------------------------------------------------------------------- /Pods/Headers/Private/YYImage/YYImageCoder.h: -------------------------------------------------------------------------------- 1 | ../../../YYImage/YYImage/YYImageCoder.h -------------------------------------------------------------------------------- /Pods/Headers/Public/YYImage/YYFrameImage.h: -------------------------------------------------------------------------------- 1 | ../../../YYImage/YYImage/YYFrameImage.h -------------------------------------------------------------------------------- /Pods/Headers/Public/YYImage/YYImageCoder.h: -------------------------------------------------------------------------------- 1 | ../../../YYImage/YYImage/YYImageCoder.h -------------------------------------------------------------------------------- /Pods/Headers/Private/YYText/YYTextInput.h: -------------------------------------------------------------------------------- 1 | ../../../YYText/YYText/Component/YYTextInput.h -------------------------------------------------------------------------------- /Pods/Headers/Private/YYText/YYTextLine.h: -------------------------------------------------------------------------------- 1 | ../../../YYText/YYText/Component/YYTextLine.h -------------------------------------------------------------------------------- /Pods/Headers/Private/YYText/YYTextParser.h: -------------------------------------------------------------------------------- 1 | ../../../YYText/YYText/String/YYTextParser.h -------------------------------------------------------------------------------- /Pods/Headers/Public/SDWebImage/UIImage+GIF.h: -------------------------------------------------------------------------------- 1 | ../../../SDWebImage/SDWebImage/UIImage+GIF.h -------------------------------------------------------------------------------- /Pods/Headers/Public/YYText/UIView+YYText.h: -------------------------------------------------------------------------------- 1 | ../../../YYText/YYText/Utility/UIView+YYText.h -------------------------------------------------------------------------------- /Pods/Headers/Public/YYText/YYTextInput.h: -------------------------------------------------------------------------------- 1 | ../../../YYText/YYText/Component/YYTextInput.h -------------------------------------------------------------------------------- /Pods/Headers/Public/YYText/YYTextLayout.h: -------------------------------------------------------------------------------- 1 | ../../../YYText/YYText/Component/YYTextLayout.h -------------------------------------------------------------------------------- /Pods/Headers/Public/YYText/YYTextLine.h: -------------------------------------------------------------------------------- 1 | ../../../YYText/YYText/Component/YYTextLine.h -------------------------------------------------------------------------------- /Pods/Headers/Public/YYText/YYTextParser.h: -------------------------------------------------------------------------------- 1 | ../../../YYText/YYText/String/YYTextParser.h -------------------------------------------------------------------------------- /Pods/Headers/Private/SDWebImage/SDImageCache.h: -------------------------------------------------------------------------------- 1 | ../../../SDWebImage/SDWebImage/SDImageCache.h -------------------------------------------------------------------------------- /Pods/Headers/Private/SDWebImage/UIImage+GIF.h: -------------------------------------------------------------------------------- 1 | ../../../SDWebImage/SDWebImage/UIImage+GIF.h -------------------------------------------------------------------------------- /Pods/Headers/Private/YYText/UIView+YYText.h: -------------------------------------------------------------------------------- 1 | ../../../YYText/YYText/Utility/UIView+YYText.h -------------------------------------------------------------------------------- /Pods/Headers/Private/YYText/YYTextArchiver.h: -------------------------------------------------------------------------------- 1 | ../../../YYText/YYText/String/YYTextArchiver.h -------------------------------------------------------------------------------- /Pods/Headers/Private/YYText/YYTextAttribute.h: -------------------------------------------------------------------------------- 1 | ../../../YYText/YYText/String/YYTextAttribute.h -------------------------------------------------------------------------------- /Pods/Headers/Private/YYText/YYTextLayout.h: -------------------------------------------------------------------------------- 1 | ../../../YYText/YYText/Component/YYTextLayout.h -------------------------------------------------------------------------------- /Pods/Headers/Private/YYText/YYTextUtilities.h: -------------------------------------------------------------------------------- 1 | ../../../YYText/YYText/Utility/YYTextUtilities.h -------------------------------------------------------------------------------- /Pods/Headers/Private/YYText/YYTextWeakProxy.h: -------------------------------------------------------------------------------- 1 | ../../../YYText/YYText/Utility/YYTextWeakProxy.h -------------------------------------------------------------------------------- /Pods/Headers/Public/SDWebImage/SDImageCache.h: -------------------------------------------------------------------------------- 1 | ../../../SDWebImage/SDWebImage/SDImageCache.h -------------------------------------------------------------------------------- /Pods/Headers/Public/YYImage/YYSpriteSheetImage.h: -------------------------------------------------------------------------------- 1 | ../../../YYImage/YYImage/YYSpriteSheetImage.h -------------------------------------------------------------------------------- /Pods/Headers/Public/YYText/YYTextArchiver.h: -------------------------------------------------------------------------------- 1 | ../../../YYText/YYText/String/YYTextArchiver.h -------------------------------------------------------------------------------- /Pods/Headers/Public/YYText/YYTextAttribute.h: -------------------------------------------------------------------------------- 1 | ../../../YYText/YYText/String/YYTextAttribute.h -------------------------------------------------------------------------------- /Pods/Headers/Public/YYText/YYTextUtilities.h: -------------------------------------------------------------------------------- 1 | ../../../YYText/YYText/Utility/YYTextUtilities.h -------------------------------------------------------------------------------- /Pods/Headers/Public/YYText/YYTextWeakProxy.h: -------------------------------------------------------------------------------- 1 | ../../../YYText/YYText/Utility/YYTextWeakProxy.h -------------------------------------------------------------------------------- /Pods/Headers/Private/YYImage/YYAnimatedImageView.h: -------------------------------------------------------------------------------- 1 | ../../../YYImage/YYImage/YYAnimatedImageView.h -------------------------------------------------------------------------------- /Pods/Headers/Private/YYImage/YYSpriteSheetImage.h: -------------------------------------------------------------------------------- 1 | ../../../YYImage/YYImage/YYSpriteSheetImage.h -------------------------------------------------------------------------------- /Pods/Headers/Private/YYText/YYTextAsyncLayer.h: -------------------------------------------------------------------------------- 1 | ../../../YYText/YYText/Utility/YYTextAsyncLayer.h -------------------------------------------------------------------------------- /Pods/Headers/Private/YYText/YYTextMagnifier.h: -------------------------------------------------------------------------------- 1 | ../../../YYText/YYText/Component/YYTextMagnifier.h -------------------------------------------------------------------------------- /Pods/Headers/Private/YYText/YYTextRunDelegate.h: -------------------------------------------------------------------------------- 1 | ../../../YYText/YYText/String/YYTextRunDelegate.h -------------------------------------------------------------------------------- /Pods/Headers/Private/YYText/YYTextTransaction.h: -------------------------------------------------------------------------------- 1 | ../../../YYText/YYText/Utility/YYTextTransaction.h -------------------------------------------------------------------------------- /Pods/Headers/Public/SDWebImage/SDWebImageCompat.h: -------------------------------------------------------------------------------- 1 | ../../../SDWebImage/SDWebImage/SDWebImageCompat.h -------------------------------------------------------------------------------- /Pods/Headers/Public/YYImage/YYAnimatedImageView.h: -------------------------------------------------------------------------------- 1 | ../../../YYImage/YYImage/YYAnimatedImageView.h -------------------------------------------------------------------------------- /Pods/Headers/Public/YYText/YYTextAsyncLayer.h: -------------------------------------------------------------------------------- 1 | ../../../YYText/YYText/Utility/YYTextAsyncLayer.h -------------------------------------------------------------------------------- /Pods/Headers/Public/YYText/YYTextDebugOption.h: -------------------------------------------------------------------------------- 1 | ../../../YYText/YYText/Component/YYTextDebugOption.h -------------------------------------------------------------------------------- /Pods/Headers/Public/YYText/YYTextMagnifier.h: -------------------------------------------------------------------------------- 1 | ../../../YYText/YYText/Component/YYTextMagnifier.h -------------------------------------------------------------------------------- /Pods/Headers/Public/YYText/YYTextRunDelegate.h: -------------------------------------------------------------------------------- 1 | ../../../YYText/YYText/String/YYTextRunDelegate.h -------------------------------------------------------------------------------- /Pods/Headers/Public/YYText/YYTextTransaction.h: -------------------------------------------------------------------------------- 1 | ../../../YYText/YYText/Utility/YYTextTransaction.h -------------------------------------------------------------------------------- /Pods/Headers/Private/SDWebImage/SDWebImageCompat.h: -------------------------------------------------------------------------------- 1 | ../../../SDWebImage/SDWebImage/SDWebImageCompat.h -------------------------------------------------------------------------------- /Pods/Headers/Private/SDWebImage/SDWebImageDecoder.h: -------------------------------------------------------------------------------- 1 | ../../../SDWebImage/SDWebImage/SDWebImageDecoder.h -------------------------------------------------------------------------------- /Pods/Headers/Private/SDWebImage/SDWebImageManager.h: -------------------------------------------------------------------------------- 1 | ../../../SDWebImage/SDWebImage/SDWebImageManager.h -------------------------------------------------------------------------------- /Pods/Headers/Private/SDWebImage/UIButton+WebCache.h: -------------------------------------------------------------------------------- 1 | ../../../SDWebImage/SDWebImage/UIButton+WebCache.h -------------------------------------------------------------------------------- /Pods/Headers/Private/YYText/UIPasteboard+YYText.h: -------------------------------------------------------------------------------- 1 | ../../../YYText/YYText/Utility/UIPasteboard+YYText.h -------------------------------------------------------------------------------- /Pods/Headers/Private/YYText/YYTextContainerView.h: -------------------------------------------------------------------------------- 1 | ../../../YYText/YYText/Component/YYTextContainerView.h -------------------------------------------------------------------------------- /Pods/Headers/Private/YYText/YYTextDebugOption.h: -------------------------------------------------------------------------------- 1 | ../../../YYText/YYText/Component/YYTextDebugOption.h -------------------------------------------------------------------------------- /Pods/Headers/Private/YYText/YYTextEffectWindow.h: -------------------------------------------------------------------------------- 1 | ../../../YYText/YYText/Component/YYTextEffectWindow.h -------------------------------------------------------------------------------- /Pods/Headers/Private/YYText/YYTextRubyAnnotation.h: -------------------------------------------------------------------------------- 1 | ../../../YYText/YYText/String/YYTextRubyAnnotation.h -------------------------------------------------------------------------------- /Pods/Headers/Private/YYText/YYTextSelectionView.h: -------------------------------------------------------------------------------- 1 | ../../../YYText/YYText/Component/YYTextSelectionView.h -------------------------------------------------------------------------------- /Pods/Headers/Public/SDWebImage/SDWebImageDecoder.h: -------------------------------------------------------------------------------- 1 | ../../../SDWebImage/SDWebImage/SDWebImageDecoder.h -------------------------------------------------------------------------------- /Pods/Headers/Public/SDWebImage/SDWebImageManager.h: -------------------------------------------------------------------------------- 1 | ../../../SDWebImage/SDWebImage/SDWebImageManager.h -------------------------------------------------------------------------------- /Pods/Headers/Public/SDWebImage/UIButton+WebCache.h: -------------------------------------------------------------------------------- 1 | ../../../SDWebImage/SDWebImage/UIButton+WebCache.h -------------------------------------------------------------------------------- /Pods/Headers/Public/YYText/UIPasteboard+YYText.h: -------------------------------------------------------------------------------- 1 | ../../../YYText/YYText/Utility/UIPasteboard+YYText.h -------------------------------------------------------------------------------- /Pods/Headers/Public/YYText/YYTextContainerView.h: -------------------------------------------------------------------------------- 1 | ../../../YYText/YYText/Component/YYTextContainerView.h -------------------------------------------------------------------------------- /Pods/Headers/Public/YYText/YYTextEffectWindow.h: -------------------------------------------------------------------------------- 1 | ../../../YYText/YYText/Component/YYTextEffectWindow.h -------------------------------------------------------------------------------- /Pods/Headers/Public/YYText/YYTextRubyAnnotation.h: -------------------------------------------------------------------------------- 1 | ../../../YYText/YYText/String/YYTextRubyAnnotation.h -------------------------------------------------------------------------------- /Pods/Headers/Public/YYText/YYTextSelectionView.h: -------------------------------------------------------------------------------- 1 | ../../../YYText/YYText/Component/YYTextSelectionView.h -------------------------------------------------------------------------------- /Pods/Headers/Private/SDWebImage/SDWebImageDownloader.h: -------------------------------------------------------------------------------- 1 | ../../../SDWebImage/SDWebImage/SDWebImageDownloader.h -------------------------------------------------------------------------------- /Pods/Headers/Private/SDWebImage/SDWebImageOperation.h: -------------------------------------------------------------------------------- 1 | ../../../SDWebImage/SDWebImage/SDWebImageOperation.h -------------------------------------------------------------------------------- /Pods/Headers/Private/SDWebImage/SDWebImagePrefetcher.h: -------------------------------------------------------------------------------- 1 | ../../../SDWebImage/SDWebImage/SDWebImagePrefetcher.h -------------------------------------------------------------------------------- /Pods/Headers/Private/SDWebImage/UIImage+MultiFormat.h: -------------------------------------------------------------------------------- 1 | ../../../SDWebImage/SDWebImage/UIImage+MultiFormat.h -------------------------------------------------------------------------------- /Pods/Headers/Private/SDWebImage/UIImageView+WebCache.h: -------------------------------------------------------------------------------- 1 | ../../../SDWebImage/SDWebImage/UIImageView+WebCache.h -------------------------------------------------------------------------------- /Pods/Headers/Private/YYText/YYTextKeyboardManager.h: -------------------------------------------------------------------------------- 1 | ../../../YYText/YYText/Component/YYTextKeyboardManager.h -------------------------------------------------------------------------------- /Pods/Headers/Public/SDWebImage/SDWebImageDownloader.h: -------------------------------------------------------------------------------- 1 | ../../../SDWebImage/SDWebImage/SDWebImageDownloader.h -------------------------------------------------------------------------------- /Pods/Headers/Public/SDWebImage/SDWebImageOperation.h: -------------------------------------------------------------------------------- 1 | ../../../SDWebImage/SDWebImage/SDWebImageOperation.h -------------------------------------------------------------------------------- /Pods/Headers/Public/SDWebImage/SDWebImagePrefetcher.h: -------------------------------------------------------------------------------- 1 | ../../../SDWebImage/SDWebImage/SDWebImagePrefetcher.h -------------------------------------------------------------------------------- /Pods/Headers/Public/SDWebImage/UIImage+MultiFormat.h: -------------------------------------------------------------------------------- 1 | ../../../SDWebImage/SDWebImage/UIImage+MultiFormat.h -------------------------------------------------------------------------------- /Pods/Headers/Public/SDWebImage/UIImageView+WebCache.h: -------------------------------------------------------------------------------- 1 | ../../../SDWebImage/SDWebImage/UIImageView+WebCache.h -------------------------------------------------------------------------------- /Pods/Headers/Public/YYText/NSParagraphStyle+YYText.h: -------------------------------------------------------------------------------- 1 | ../../../YYText/YYText/Utility/NSParagraphStyle+YYText.h -------------------------------------------------------------------------------- /Pods/Headers/Public/YYText/YYTextKeyboardManager.h: -------------------------------------------------------------------------------- 1 | ../../../YYText/YYText/Component/YYTextKeyboardManager.h -------------------------------------------------------------------------------- /Pods/Headers/Private/SDWebImage/NSData+ImageContentType.h: -------------------------------------------------------------------------------- 1 | ../../../SDWebImage/SDWebImage/NSData+ImageContentType.h -------------------------------------------------------------------------------- /Pods/Headers/Private/YYText/NSAttributedString+YYText.h: -------------------------------------------------------------------------------- 1 | ../../../YYText/YYText/Utility/NSAttributedString+YYText.h -------------------------------------------------------------------------------- /Pods/Headers/Private/YYText/NSParagraphStyle+YYText.h: -------------------------------------------------------------------------------- 1 | ../../../YYText/YYText/Utility/NSParagraphStyle+YYText.h -------------------------------------------------------------------------------- /Pods/Headers/Public/SDWebImage/NSData+ImageContentType.h: -------------------------------------------------------------------------------- 1 | ../../../SDWebImage/SDWebImage/NSData+ImageContentType.h -------------------------------------------------------------------------------- /Pods/Headers/Public/YYText/NSAttributedString+YYText.h: -------------------------------------------------------------------------------- 1 | ../../../YYText/YYText/Utility/NSAttributedString+YYText.h -------------------------------------------------------------------------------- /Pods/Headers/Private/SDWebImage/UIView+WebCacheOperation.h: -------------------------------------------------------------------------------- 1 | ../../../SDWebImage/SDWebImage/UIView+WebCacheOperation.h -------------------------------------------------------------------------------- /Pods/Headers/Public/SDWebImage/UIView+WebCacheOperation.h: -------------------------------------------------------------------------------- 1 | ../../../SDWebImage/SDWebImage/UIView+WebCacheOperation.h -------------------------------------------------------------------------------- /Pods/Headers/Private/SDWebImage/SDWebImageDownloaderOperation.h: -------------------------------------------------------------------------------- 1 | ../../../SDWebImage/SDWebImage/SDWebImageDownloaderOperation.h -------------------------------------------------------------------------------- /Pods/Headers/Public/SDWebImage/SDWebImageDownloaderOperation.h: -------------------------------------------------------------------------------- 1 | ../../../SDWebImage/SDWebImage/SDWebImageDownloaderOperation.h -------------------------------------------------------------------------------- /Pods/Headers/Public/SDWebImage/UIImageView+HighlightedWebCache.h: -------------------------------------------------------------------------------- 1 | ../../../SDWebImage/SDWebImage/UIImageView+HighlightedWebCache.h -------------------------------------------------------------------------------- /Pods/Headers/Private/SDWebImage/UIImageView+HighlightedWebCache.h: -------------------------------------------------------------------------------- 1 | ../../../SDWebImage/SDWebImage/UIImageView+HighlightedWebCache.h -------------------------------------------------------------------------------- /XYFaceKeyboard/XYImgs/XYBears/x00.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cryboyofyu/XYFaceKeyboard/HEAD/XYFaceKeyboard/XYImgs/XYBears/x00.gif -------------------------------------------------------------------------------- /XYFaceKeyboard/XYImgs/XYBears/x01.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cryboyofyu/XYFaceKeyboard/HEAD/XYFaceKeyboard/XYImgs/XYBears/x01.gif -------------------------------------------------------------------------------- /XYFaceKeyboard/XYImgs/XYBears/x02.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cryboyofyu/XYFaceKeyboard/HEAD/XYFaceKeyboard/XYImgs/XYBears/x02.gif -------------------------------------------------------------------------------- /XYFaceKeyboard/XYImgs/XYBears/x03.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cryboyofyu/XYFaceKeyboard/HEAD/XYFaceKeyboard/XYImgs/XYBears/x03.gif -------------------------------------------------------------------------------- /XYFaceKeyboard/XYImgs/XYBears/x04.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cryboyofyu/XYFaceKeyboard/HEAD/XYFaceKeyboard/XYImgs/XYBears/x04.gif -------------------------------------------------------------------------------- /XYFaceKeyboard/XYImgs/XYBears/x05.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cryboyofyu/XYFaceKeyboard/HEAD/XYFaceKeyboard/XYImgs/XYBears/x05.gif -------------------------------------------------------------------------------- /XYFaceKeyboard/XYImgs/XYBears/x06.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cryboyofyu/XYFaceKeyboard/HEAD/XYFaceKeyboard/XYImgs/XYBears/x06.gif -------------------------------------------------------------------------------- /XYFaceKeyboard/XYImgs/XYBears/x07.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cryboyofyu/XYFaceKeyboard/HEAD/XYFaceKeyboard/XYImgs/XYBears/x07.gif -------------------------------------------------------------------------------- /XYFaceKeyboard/XYImgs/XYBears/x08.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cryboyofyu/XYFaceKeyboard/HEAD/XYFaceKeyboard/XYImgs/XYBears/x08.gif -------------------------------------------------------------------------------- /XYFaceKeyboard/XYImgs/XYBears/x09.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cryboyofyu/XYFaceKeyboard/HEAD/XYFaceKeyboard/XYImgs/XYBears/x09.gif -------------------------------------------------------------------------------- /XYFaceKeyboard/XYImgs/XYBears/x10.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cryboyofyu/XYFaceKeyboard/HEAD/XYFaceKeyboard/XYImgs/XYBears/x10.gif -------------------------------------------------------------------------------- /XYFaceKeyboard/XYImgs/XYBears/x11.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cryboyofyu/XYFaceKeyboard/HEAD/XYFaceKeyboard/XYImgs/XYBears/x11.gif -------------------------------------------------------------------------------- /XYFaceKeyboard/XYImgs/XYBears/x12.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cryboyofyu/XYFaceKeyboard/HEAD/XYFaceKeyboard/XYImgs/XYBears/x12.gif -------------------------------------------------------------------------------- /XYFaceKeyboard/XYImgs/XYBears/x13.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cryboyofyu/XYFaceKeyboard/HEAD/XYFaceKeyboard/XYImgs/XYBears/x13.gif -------------------------------------------------------------------------------- /XYFaceKeyboard/XYImgs/XYBears/x14.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cryboyofyu/XYFaceKeyboard/HEAD/XYFaceKeyboard/XYImgs/XYBears/x14.gif -------------------------------------------------------------------------------- /XYFaceKeyboard/XYImgs/XYBears/x15.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cryboyofyu/XYFaceKeyboard/HEAD/XYFaceKeyboard/XYImgs/XYBears/x15.gif -------------------------------------------------------------------------------- /XYFaceKeyboard/XYImgs/XYBears/x16.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cryboyofyu/XYFaceKeyboard/HEAD/XYFaceKeyboard/XYImgs/XYBears/x16.gif -------------------------------------------------------------------------------- /XYFaceKeyboard/XYImgs/XYBears/x17.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cryboyofyu/XYFaceKeyboard/HEAD/XYFaceKeyboard/XYImgs/XYBears/x17.gif -------------------------------------------------------------------------------- /XYFaceKeyboard/XYImgs/XYBears/x18.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cryboyofyu/XYFaceKeyboard/HEAD/XYFaceKeyboard/XYImgs/XYBears/x18.gif -------------------------------------------------------------------------------- /XYFaceKeyboard/XYImgs/XYBears/x19.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cryboyofyu/XYFaceKeyboard/HEAD/XYFaceKeyboard/XYImgs/XYBears/x19.gif -------------------------------------------------------------------------------- /XYFaceKeyboard/XYImgs/XYBears/x20.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cryboyofyu/XYFaceKeyboard/HEAD/XYFaceKeyboard/XYImgs/XYBears/x20.gif -------------------------------------------------------------------------------- /XYFaceKeyboard/XYImgs/XYBears/x21.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cryboyofyu/XYFaceKeyboard/HEAD/XYFaceKeyboard/XYImgs/XYBears/x21.gif -------------------------------------------------------------------------------- /XYFaceKeyboard/XYImgs/XYBears/x22.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cryboyofyu/XYFaceKeyboard/HEAD/XYFaceKeyboard/XYImgs/XYBears/x22.gif -------------------------------------------------------------------------------- /XYFaceKeyboard/XYImgs/XYBears/x23.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cryboyofyu/XYFaceKeyboard/HEAD/XYFaceKeyboard/XYImgs/XYBears/x23.gif -------------------------------------------------------------------------------- /XYFaceKeyboard/XYImgs/XYBears/x24.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cryboyofyu/XYFaceKeyboard/HEAD/XYFaceKeyboard/XYImgs/XYBears/x24.gif -------------------------------------------------------------------------------- /XYFaceKeyboard/XYImgs/XYBears/x25.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cryboyofyu/XYFaceKeyboard/HEAD/XYFaceKeyboard/XYImgs/XYBears/x25.gif -------------------------------------------------------------------------------- /XYFaceKeyboard/XYImgs/XYBears/x26.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cryboyofyu/XYFaceKeyboard/HEAD/XYFaceKeyboard/XYImgs/XYBears/x26.gif -------------------------------------------------------------------------------- /XYFaceKeyboard/XYImgs/XYBears/x27.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cryboyofyu/XYFaceKeyboard/HEAD/XYFaceKeyboard/XYImgs/XYBears/x27.gif -------------------------------------------------------------------------------- /XYFaceKeyboard/XYImgs/XYBears/x28.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cryboyofyu/XYFaceKeyboard/HEAD/XYFaceKeyboard/XYImgs/XYBears/x28.gif -------------------------------------------------------------------------------- /XYFaceKeyboard/XYImgs/XYBears/x29.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cryboyofyu/XYFaceKeyboard/HEAD/XYFaceKeyboard/XYImgs/XYBears/x29.gif -------------------------------------------------------------------------------- /XYFaceKeyboard/XYImgs/XYBears/x30.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cryboyofyu/XYFaceKeyboard/HEAD/XYFaceKeyboard/XYImgs/XYBears/x30.gif -------------------------------------------------------------------------------- /XYFaceKeyboard/XYImgs/XYBears/x31.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cryboyofyu/XYFaceKeyboard/HEAD/XYFaceKeyboard/XYImgs/XYBears/x31.gif -------------------------------------------------------------------------------- /XYFaceKeyboard/XYImgs/XYBears/x32.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cryboyofyu/XYFaceKeyboard/HEAD/XYFaceKeyboard/XYImgs/XYBears/x32.gif -------------------------------------------------------------------------------- /XYFaceKeyboard/XYImgs/XYBears/x33.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cryboyofyu/XYFaceKeyboard/HEAD/XYFaceKeyboard/XYImgs/XYBears/x33.gif -------------------------------------------------------------------------------- /XYFaceKeyboard/XYImgs/XYBears/x34.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cryboyofyu/XYFaceKeyboard/HEAD/XYFaceKeyboard/XYImgs/XYBears/x34.gif -------------------------------------------------------------------------------- /XYFaceKeyboard/XYImgs/XYBears/x35.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cryboyofyu/XYFaceKeyboard/HEAD/XYFaceKeyboard/XYImgs/XYBears/x35.gif -------------------------------------------------------------------------------- /XYFaceKeyboard/XYImgs/XYBears/x36.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cryboyofyu/XYFaceKeyboard/HEAD/XYFaceKeyboard/XYImgs/XYBears/x36.gif -------------------------------------------------------------------------------- /XYFaceKeyboard/XYImgs/XYBears/x37.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cryboyofyu/XYFaceKeyboard/HEAD/XYFaceKeyboard/XYImgs/XYBears/x37.gif -------------------------------------------------------------------------------- /XYFaceKeyboard/XYImgs/XYBears/x38.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cryboyofyu/XYFaceKeyboard/HEAD/XYFaceKeyboard/XYImgs/XYBears/x38.gif -------------------------------------------------------------------------------- /XYFaceKeyboard/XYImgs/XYBears/x39.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cryboyofyu/XYFaceKeyboard/HEAD/XYFaceKeyboard/XYImgs/XYBears/x39.gif -------------------------------------------------------------------------------- /XYFaceKeyboard/XYImgs/XYBears/x40.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cryboyofyu/XYFaceKeyboard/HEAD/XYFaceKeyboard/XYImgs/XYBears/x40.gif -------------------------------------------------------------------------------- /XYFaceKeyboard/XYImgs/XYBears/x41.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cryboyofyu/XYFaceKeyboard/HEAD/XYFaceKeyboard/XYImgs/XYBears/x41.gif -------------------------------------------------------------------------------- /XYFaceKeyboard/XYImgs/XYBears/x42.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cryboyofyu/XYFaceKeyboard/HEAD/XYFaceKeyboard/XYImgs/XYBears/x42.gif -------------------------------------------------------------------------------- /XYFaceKeyboard/XYImgs/XYFaces/cry.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cryboyofyu/XYFaceKeyboard/HEAD/XYFaceKeyboard/XYImgs/XYFaces/cry.gif -------------------------------------------------------------------------------- /XYFaceKeyboard/XYImgs/XYFaces/pb0.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cryboyofyu/XYFaceKeyboard/HEAD/XYFaceKeyboard/XYImgs/XYFaces/pb0.gif -------------------------------------------------------------------------------- /XYFaceKeyboard/XYImgs/XYFaces/pb1.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cryboyofyu/XYFaceKeyboard/HEAD/XYFaceKeyboard/XYImgs/XYFaces/pb1.gif -------------------------------------------------------------------------------- /XYFaceKeyboard/XYImgs/XYFaces/pb10.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cryboyofyu/XYFaceKeyboard/HEAD/XYFaceKeyboard/XYImgs/XYFaces/pb10.gif -------------------------------------------------------------------------------- /XYFaceKeyboard/XYImgs/XYFaces/pb11.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cryboyofyu/XYFaceKeyboard/HEAD/XYFaceKeyboard/XYImgs/XYFaces/pb11.gif -------------------------------------------------------------------------------- /XYFaceKeyboard/XYImgs/XYFaces/pb12.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cryboyofyu/XYFaceKeyboard/HEAD/XYFaceKeyboard/XYImgs/XYFaces/pb12.gif -------------------------------------------------------------------------------- /XYFaceKeyboard/XYImgs/XYFaces/pb13.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cryboyofyu/XYFaceKeyboard/HEAD/XYFaceKeyboard/XYImgs/XYFaces/pb13.gif -------------------------------------------------------------------------------- /XYFaceKeyboard/XYImgs/XYFaces/pb14.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cryboyofyu/XYFaceKeyboard/HEAD/XYFaceKeyboard/XYImgs/XYFaces/pb14.gif -------------------------------------------------------------------------------- /XYFaceKeyboard/XYImgs/XYFaces/pb15.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cryboyofyu/XYFaceKeyboard/HEAD/XYFaceKeyboard/XYImgs/XYFaces/pb15.gif -------------------------------------------------------------------------------- /XYFaceKeyboard/XYImgs/XYFaces/pb16.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cryboyofyu/XYFaceKeyboard/HEAD/XYFaceKeyboard/XYImgs/XYFaces/pb16.gif -------------------------------------------------------------------------------- /XYFaceKeyboard/XYImgs/XYFaces/pb17.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cryboyofyu/XYFaceKeyboard/HEAD/XYFaceKeyboard/XYImgs/XYFaces/pb17.gif -------------------------------------------------------------------------------- /XYFaceKeyboard/XYImgs/XYFaces/pb18.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cryboyofyu/XYFaceKeyboard/HEAD/XYFaceKeyboard/XYImgs/XYFaces/pb18.gif -------------------------------------------------------------------------------- /XYFaceKeyboard/XYImgs/XYFaces/pb19.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cryboyofyu/XYFaceKeyboard/HEAD/XYFaceKeyboard/XYImgs/XYFaces/pb19.gif -------------------------------------------------------------------------------- /XYFaceKeyboard/XYImgs/XYFaces/pb2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cryboyofyu/XYFaceKeyboard/HEAD/XYFaceKeyboard/XYImgs/XYFaces/pb2.gif -------------------------------------------------------------------------------- /XYFaceKeyboard/XYImgs/XYFaces/pb20.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cryboyofyu/XYFaceKeyboard/HEAD/XYFaceKeyboard/XYImgs/XYFaces/pb20.gif -------------------------------------------------------------------------------- /XYFaceKeyboard/XYImgs/XYFaces/pb21.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cryboyofyu/XYFaceKeyboard/HEAD/XYFaceKeyboard/XYImgs/XYFaces/pb21.gif -------------------------------------------------------------------------------- /XYFaceKeyboard/XYImgs/XYFaces/pb22.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cryboyofyu/XYFaceKeyboard/HEAD/XYFaceKeyboard/XYImgs/XYFaces/pb22.gif -------------------------------------------------------------------------------- /XYFaceKeyboard/XYImgs/XYFaces/pb23.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cryboyofyu/XYFaceKeyboard/HEAD/XYFaceKeyboard/XYImgs/XYFaces/pb23.gif -------------------------------------------------------------------------------- /XYFaceKeyboard/XYImgs/XYFaces/pb24.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cryboyofyu/XYFaceKeyboard/HEAD/XYFaceKeyboard/XYImgs/XYFaces/pb24.gif -------------------------------------------------------------------------------- /XYFaceKeyboard/XYImgs/XYFaces/pb25.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cryboyofyu/XYFaceKeyboard/HEAD/XYFaceKeyboard/XYImgs/XYFaces/pb25.gif -------------------------------------------------------------------------------- /XYFaceKeyboard/XYImgs/XYFaces/pb26.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cryboyofyu/XYFaceKeyboard/HEAD/XYFaceKeyboard/XYImgs/XYFaces/pb26.gif -------------------------------------------------------------------------------- /XYFaceKeyboard/XYImgs/XYFaces/pb27.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cryboyofyu/XYFaceKeyboard/HEAD/XYFaceKeyboard/XYImgs/XYFaces/pb27.gif -------------------------------------------------------------------------------- /XYFaceKeyboard/XYImgs/XYFaces/pb28.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cryboyofyu/XYFaceKeyboard/HEAD/XYFaceKeyboard/XYImgs/XYFaces/pb28.gif -------------------------------------------------------------------------------- /XYFaceKeyboard/XYImgs/XYFaces/pb29.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cryboyofyu/XYFaceKeyboard/HEAD/XYFaceKeyboard/XYImgs/XYFaces/pb29.gif -------------------------------------------------------------------------------- /XYFaceKeyboard/XYImgs/XYFaces/pb3.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cryboyofyu/XYFaceKeyboard/HEAD/XYFaceKeyboard/XYImgs/XYFaces/pb3.gif -------------------------------------------------------------------------------- /XYFaceKeyboard/XYImgs/XYFaces/pb30.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cryboyofyu/XYFaceKeyboard/HEAD/XYFaceKeyboard/XYImgs/XYFaces/pb30.gif -------------------------------------------------------------------------------- /XYFaceKeyboard/XYImgs/XYFaces/pb31.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cryboyofyu/XYFaceKeyboard/HEAD/XYFaceKeyboard/XYImgs/XYFaces/pb31.gif -------------------------------------------------------------------------------- /XYFaceKeyboard/XYImgs/XYFaces/pb32.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cryboyofyu/XYFaceKeyboard/HEAD/XYFaceKeyboard/XYImgs/XYFaces/pb32.gif -------------------------------------------------------------------------------- /XYFaceKeyboard/XYImgs/XYFaces/pb33.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cryboyofyu/XYFaceKeyboard/HEAD/XYFaceKeyboard/XYImgs/XYFaces/pb33.gif -------------------------------------------------------------------------------- /XYFaceKeyboard/XYImgs/XYFaces/pb34.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cryboyofyu/XYFaceKeyboard/HEAD/XYFaceKeyboard/XYImgs/XYFaces/pb34.gif -------------------------------------------------------------------------------- /XYFaceKeyboard/XYImgs/XYFaces/pb35.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cryboyofyu/XYFaceKeyboard/HEAD/XYFaceKeyboard/XYImgs/XYFaces/pb35.gif -------------------------------------------------------------------------------- /XYFaceKeyboard/XYImgs/XYFaces/pb36.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cryboyofyu/XYFaceKeyboard/HEAD/XYFaceKeyboard/XYImgs/XYFaces/pb36.gif -------------------------------------------------------------------------------- /XYFaceKeyboard/XYImgs/XYFaces/pb37.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cryboyofyu/XYFaceKeyboard/HEAD/XYFaceKeyboard/XYImgs/XYFaces/pb37.gif -------------------------------------------------------------------------------- /XYFaceKeyboard/XYImgs/XYFaces/pb38.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cryboyofyu/XYFaceKeyboard/HEAD/XYFaceKeyboard/XYImgs/XYFaces/pb38.gif -------------------------------------------------------------------------------- /XYFaceKeyboard/XYImgs/XYFaces/pb39.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cryboyofyu/XYFaceKeyboard/HEAD/XYFaceKeyboard/XYImgs/XYFaces/pb39.gif -------------------------------------------------------------------------------- /XYFaceKeyboard/XYImgs/XYFaces/pb4.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cryboyofyu/XYFaceKeyboard/HEAD/XYFaceKeyboard/XYImgs/XYFaces/pb4.gif -------------------------------------------------------------------------------- /XYFaceKeyboard/XYImgs/XYFaces/pb40.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cryboyofyu/XYFaceKeyboard/HEAD/XYFaceKeyboard/XYImgs/XYFaces/pb40.gif -------------------------------------------------------------------------------- /XYFaceKeyboard/XYImgs/XYFaces/pb41.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cryboyofyu/XYFaceKeyboard/HEAD/XYFaceKeyboard/XYImgs/XYFaces/pb41.gif -------------------------------------------------------------------------------- /XYFaceKeyboard/XYImgs/XYFaces/pb42.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cryboyofyu/XYFaceKeyboard/HEAD/XYFaceKeyboard/XYImgs/XYFaces/pb42.gif -------------------------------------------------------------------------------- /XYFaceKeyboard/XYImgs/XYFaces/pb43.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cryboyofyu/XYFaceKeyboard/HEAD/XYFaceKeyboard/XYImgs/XYFaces/pb43.gif -------------------------------------------------------------------------------- /XYFaceKeyboard/XYImgs/XYFaces/pb44.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cryboyofyu/XYFaceKeyboard/HEAD/XYFaceKeyboard/XYImgs/XYFaces/pb44.gif -------------------------------------------------------------------------------- /XYFaceKeyboard/XYImgs/XYFaces/pb45.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cryboyofyu/XYFaceKeyboard/HEAD/XYFaceKeyboard/XYImgs/XYFaces/pb45.gif -------------------------------------------------------------------------------- /XYFaceKeyboard/XYImgs/XYFaces/pb46.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cryboyofyu/XYFaceKeyboard/HEAD/XYFaceKeyboard/XYImgs/XYFaces/pb46.gif -------------------------------------------------------------------------------- /XYFaceKeyboard/XYImgs/XYFaces/pb47.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cryboyofyu/XYFaceKeyboard/HEAD/XYFaceKeyboard/XYImgs/XYFaces/pb47.gif -------------------------------------------------------------------------------- /XYFaceKeyboard/XYImgs/XYFaces/pb48.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cryboyofyu/XYFaceKeyboard/HEAD/XYFaceKeyboard/XYImgs/XYFaces/pb48.gif -------------------------------------------------------------------------------- /XYFaceKeyboard/XYImgs/XYFaces/pb49.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cryboyofyu/XYFaceKeyboard/HEAD/XYFaceKeyboard/XYImgs/XYFaces/pb49.gif -------------------------------------------------------------------------------- /XYFaceKeyboard/XYImgs/XYFaces/pb5.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cryboyofyu/XYFaceKeyboard/HEAD/XYFaceKeyboard/XYImgs/XYFaces/pb5.gif -------------------------------------------------------------------------------- /XYFaceKeyboard/XYImgs/XYFaces/pb50.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cryboyofyu/XYFaceKeyboard/HEAD/XYFaceKeyboard/XYImgs/XYFaces/pb50.gif -------------------------------------------------------------------------------- /XYFaceKeyboard/XYImgs/XYFaces/pb51.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cryboyofyu/XYFaceKeyboard/HEAD/XYFaceKeyboard/XYImgs/XYFaces/pb51.gif -------------------------------------------------------------------------------- /XYFaceKeyboard/XYImgs/XYFaces/pb52.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cryboyofyu/XYFaceKeyboard/HEAD/XYFaceKeyboard/XYImgs/XYFaces/pb52.gif -------------------------------------------------------------------------------- /XYFaceKeyboard/XYImgs/XYFaces/pb53.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cryboyofyu/XYFaceKeyboard/HEAD/XYFaceKeyboard/XYImgs/XYFaces/pb53.gif -------------------------------------------------------------------------------- /XYFaceKeyboard/XYImgs/XYFaces/pb6.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cryboyofyu/XYFaceKeyboard/HEAD/XYFaceKeyboard/XYImgs/XYFaces/pb6.gif -------------------------------------------------------------------------------- /XYFaceKeyboard/XYImgs/XYFaces/pb7.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cryboyofyu/XYFaceKeyboard/HEAD/XYFaceKeyboard/XYImgs/XYFaces/pb7.gif -------------------------------------------------------------------------------- /XYFaceKeyboard/XYImgs/XYFaces/pb8.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cryboyofyu/XYFaceKeyboard/HEAD/XYFaceKeyboard/XYImgs/XYFaces/pb8.gif -------------------------------------------------------------------------------- /XYFaceKeyboard/XYImgs/XYFaces/pb9.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cryboyofyu/XYFaceKeyboard/HEAD/XYFaceKeyboard/XYImgs/XYFaces/pb9.gif -------------------------------------------------------------------------------- /XYFaceKeyboard/XYImgs/XYCaitiao/xy_1.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cryboyofyu/XYFaceKeyboard/HEAD/XYFaceKeyboard/XYImgs/XYCaitiao/xy_1.gif -------------------------------------------------------------------------------- /XYFaceKeyboard/XYImgs/XYCaitiao/xy_2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cryboyofyu/XYFaceKeyboard/HEAD/XYFaceKeyboard/XYImgs/XYCaitiao/xy_2.gif -------------------------------------------------------------------------------- /XYFaceKeyboard/XYImgs/XYCaitiao/xy_3.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cryboyofyu/XYFaceKeyboard/HEAD/XYFaceKeyboard/XYImgs/XYCaitiao/xy_3.gif -------------------------------------------------------------------------------- /XYFaceKeyboard/XYImgs/XYCaitiao/xy_4.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cryboyofyu/XYFaceKeyboard/HEAD/XYFaceKeyboard/XYImgs/XYCaitiao/xy_4.gif -------------------------------------------------------------------------------- /XYFaceKeyboard/XYImgs/XYCaitiao/xy_5.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cryboyofyu/XYFaceKeyboard/HEAD/XYFaceKeyboard/XYImgs/XYCaitiao/xy_5.gif -------------------------------------------------------------------------------- /XYFaceKeyboard/XYImgs/XYCaitiao/xy_6.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cryboyofyu/XYFaceKeyboard/HEAD/XYFaceKeyboard/XYImgs/XYCaitiao/xy_6.gif -------------------------------------------------------------------------------- /XYFaceKeyboard/XYImgs/XYCaitiao/xy_7.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cryboyofyu/XYFaceKeyboard/HEAD/XYFaceKeyboard/XYImgs/XYCaitiao/xy_7.gif -------------------------------------------------------------------------------- /XYFaceKeyboard/XYImgs/XYFaces/h_thumb.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cryboyofyu/XYFaceKeyboard/HEAD/XYFaceKeyboard/XYImgs/XYFaces/h_thumb.gif -------------------------------------------------------------------------------- /XYFaceKeyboard/XYImgs/XYFaces/k_thumb.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cryboyofyu/XYFaceKeyboard/HEAD/XYFaceKeyboard/XYImgs/XYFaces/k_thumb.gif -------------------------------------------------------------------------------- /XYFaceKeyboard/XYImgs/XYFaces/laugh.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cryboyofyu/XYFaceKeyboard/HEAD/XYFaceKeyboard/XYImgs/XYFaces/laugh.gif -------------------------------------------------------------------------------- /XYFaceKeyboard/XYImgs/XYFaces/t_thumb.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cryboyofyu/XYFaceKeyboard/HEAD/XYFaceKeyboard/XYImgs/XYFaces/t_thumb.gif -------------------------------------------------------------------------------- /XYFaceKeyboard/XYImgs/XYFaces/unheart.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cryboyofyu/XYFaceKeyboard/HEAD/XYFaceKeyboard/XYImgs/XYFaces/unheart.gif -------------------------------------------------------------------------------- /XYFaceKeyboard/XYImgs/XYFaces/x_thumb.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cryboyofyu/XYFaceKeyboard/HEAD/XYFaceKeyboard/XYImgs/XYFaces/x_thumb.gif -------------------------------------------------------------------------------- /XYFaceKeyboard/XYImgs/XYImgs/button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cryboyofyu/XYFaceKeyboard/HEAD/XYFaceKeyboard/XYImgs/XYImgs/button.png -------------------------------------------------------------------------------- /XYFaceKeyboard/XYImgs/XYImgs/menuBtn1.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cryboyofyu/XYFaceKeyboard/HEAD/XYFaceKeyboard/XYImgs/XYImgs/menuBtn1.gif -------------------------------------------------------------------------------- /XYFaceKeyboard/XYImgs/XYImgs/menuBtn2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cryboyofyu/XYFaceKeyboard/HEAD/XYFaceKeyboard/XYImgs/XYImgs/menuBtn2.gif -------------------------------------------------------------------------------- /XYFaceKeyboard/XYImgs/XYImgs/menuBtn3.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cryboyofyu/XYFaceKeyboard/HEAD/XYFaceKeyboard/XYImgs/XYImgs/menuBtn3.gif -------------------------------------------------------------------------------- /XYFaceKeyboard/XYImgs/XYImgs/menuBtn4.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cryboyofyu/XYFaceKeyboard/HEAD/XYFaceKeyboard/XYImgs/XYImgs/menuBtn4.gif -------------------------------------------------------------------------------- /XYFaceKeyboard/XYImgs/XYImgs/xyBtn0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cryboyofyu/XYFaceKeyboard/HEAD/XYFaceKeyboard/XYImgs/XYImgs/xyBtn0.png -------------------------------------------------------------------------------- /XYFaceKeyboard/XYImgs/XYImgs/xyBtn1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cryboyofyu/XYFaceKeyboard/HEAD/XYFaceKeyboard/XYImgs/XYImgs/xyBtn1.png -------------------------------------------------------------------------------- /XYFaceKeyboard/XYImgs/XYImgs/xyBtn2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cryboyofyu/XYFaceKeyboard/HEAD/XYFaceKeyboard/XYImgs/XYImgs/xyBtn2.png -------------------------------------------------------------------------------- /XYFaceKeyboard/XYImgs/XYImgs/xyBtn3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cryboyofyu/XYFaceKeyboard/HEAD/XYFaceKeyboard/XYImgs/XYImgs/xyBtn3.png -------------------------------------------------------------------------------- /podfile: -------------------------------------------------------------------------------- 1 | platform:ios, '7.0' 2 | 3 | target 'XYFaceKeyboardExample' do 4 | 5 | pod 'YYText' 6 | pod 'YYImage' 7 | pod 'SDWebImage' 8 | 9 | end -------------------------------------------------------------------------------- /XYFaceKeyboard/XYImgs/XYFaces/bb_thumb.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cryboyofyu/XYFaceKeyboard/HEAD/XYFaceKeyboard/XYImgs/XYFaces/bb_thumb.gif -------------------------------------------------------------------------------- /XYFaceKeyboard/XYImgs/XYFaces/bba_thumb.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cryboyofyu/XYFaceKeyboard/HEAD/XYFaceKeyboard/XYImgs/XYFaces/bba_thumb.gif -------------------------------------------------------------------------------- /XYFaceKeyboard/XYImgs/XYFaces/bs2_thumb.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cryboyofyu/XYFaceKeyboard/HEAD/XYFaceKeyboard/XYImgs/XYFaces/bs2_thumb.gif -------------------------------------------------------------------------------- /XYFaceKeyboard/XYImgs/XYFaces/bs_thumb.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cryboyofyu/XYFaceKeyboard/HEAD/XYFaceKeyboard/XYImgs/XYFaces/bs_thumb.gif -------------------------------------------------------------------------------- /XYFaceKeyboard/XYImgs/XYFaces/bz_thumb.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cryboyofyu/XYFaceKeyboard/HEAD/XYFaceKeyboard/XYImgs/XYFaces/bz_thumb.gif -------------------------------------------------------------------------------- /XYFaceKeyboard/XYImgs/XYFaces/cj_thumb.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cryboyofyu/XYFaceKeyboard/HEAD/XYFaceKeyboard/XYImgs/XYFaces/cj_thumb.gif -------------------------------------------------------------------------------- /XYFaceKeyboard/XYImgs/XYFaces/cza_thumb.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cryboyofyu/XYFaceKeyboard/HEAD/XYFaceKeyboard/XYImgs/XYFaces/cza_thumb.gif -------------------------------------------------------------------------------- /XYFaceKeyboard/XYImgs/XYFaces/gza_thumb.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cryboyofyu/XYFaceKeyboard/HEAD/XYFaceKeyboard/XYImgs/XYFaces/gza_thumb.gif -------------------------------------------------------------------------------- /XYFaceKeyboard/XYImgs/XYFaces/hsa_thumb.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cryboyofyu/XYFaceKeyboard/HEAD/XYFaceKeyboard/XYImgs/XYFaces/hsa_thumb.gif -------------------------------------------------------------------------------- /XYFaceKeyboard/XYImgs/XYFaces/kl_thumb.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cryboyofyu/XYFaceKeyboard/HEAD/XYFaceKeyboard/XYImgs/XYFaces/kl_thumb.gif -------------------------------------------------------------------------------- /XYFaceKeyboard/XYImgs/XYFaces/mb_thumb.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cryboyofyu/XYFaceKeyboard/HEAD/XYFaceKeyboard/XYImgs/XYFaces/mb_thumb.gif -------------------------------------------------------------------------------- /XYFaceKeyboard/XYImgs/XYFaces/nm_thumb.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cryboyofyu/XYFaceKeyboard/HEAD/XYFaceKeyboard/XYImgs/XYFaces/nm_thumb.gif -------------------------------------------------------------------------------- /XYFaceKeyboard/XYImgs/XYFaces/ok_thumb.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cryboyofyu/XYFaceKeyboard/HEAD/XYFaceKeyboard/XYImgs/XYFaces/ok_thumb.gif -------------------------------------------------------------------------------- /XYFaceKeyboard/XYImgs/XYFaces/qq_thumb.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cryboyofyu/XYFaceKeyboard/HEAD/XYFaceKeyboard/XYImgs/XYFaces/qq_thumb.gif -------------------------------------------------------------------------------- /XYFaceKeyboard/XYImgs/XYFaces/sb_thumb.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cryboyofyu/XYFaceKeyboard/HEAD/XYFaceKeyboard/XYImgs/XYFaces/sb_thumb.gif -------------------------------------------------------------------------------- /XYFaceKeyboard/XYImgs/XYFaces/sk_thumb.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cryboyofyu/XYFaceKeyboard/HEAD/XYFaceKeyboard/XYImgs/XYFaces/sk_thumb.gif -------------------------------------------------------------------------------- /XYFaceKeyboard/XYImgs/XYFaces/sw_thumb.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cryboyofyu/XYFaceKeyboard/HEAD/XYFaceKeyboard/XYImgs/XYFaces/sw_thumb.gif -------------------------------------------------------------------------------- /XYFaceKeyboard/XYImgs/XYFaces/tza_thumb.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cryboyofyu/XYFaceKeyboard/HEAD/XYFaceKeyboard/XYImgs/XYFaces/tza_thumb.gif -------------------------------------------------------------------------------- /XYFaceKeyboard/XYImgs/XYFaces/vw_thumb.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cryboyofyu/XYFaceKeyboard/HEAD/XYFaceKeyboard/XYImgs/XYFaces/vw_thumb.gif -------------------------------------------------------------------------------- /XYFaceKeyboard/XYImgs/XYFaces/wg_thumb.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cryboyofyu/XYFaceKeyboard/HEAD/XYFaceKeyboard/XYImgs/XYFaces/wg_thumb.gif -------------------------------------------------------------------------------- /XYFaceKeyboard/XYImgs/XYFaces/wq_thumb.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cryboyofyu/XYFaceKeyboard/HEAD/XYFaceKeyboard/XYImgs/XYFaces/wq_thumb.gif -------------------------------------------------------------------------------- /XYFaceKeyboard/XYImgs/XYFaces/ws_thumb.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cryboyofyu/XYFaceKeyboard/HEAD/XYFaceKeyboard/XYImgs/XYFaces/ws_thumb.gif -------------------------------------------------------------------------------- /XYFaceKeyboard/XYImgs/XYFaces/ye_thumb.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cryboyofyu/XYFaceKeyboard/HEAD/XYFaceKeyboard/XYImgs/XYFaces/ye_thumb.gif -------------------------------------------------------------------------------- /XYFaceKeyboard/XYImgs/XYFaces/yhh_thumb.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cryboyofyu/XYFaceKeyboard/HEAD/XYFaceKeyboard/XYImgs/XYFaces/yhh_thumb.gif -------------------------------------------------------------------------------- /XYFaceKeyboard/XYImgs/XYFaces/yw_thumb.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cryboyofyu/XYFaceKeyboard/HEAD/XYFaceKeyboard/XYImgs/XYFaces/yw_thumb.gif -------------------------------------------------------------------------------- /XYFaceKeyboard/XYImgs/XYFaces/yx_thumb.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cryboyofyu/XYFaceKeyboard/HEAD/XYFaceKeyboard/XYImgs/XYFaces/yx_thumb.gif -------------------------------------------------------------------------------- /XYFaceKeyboard/XYImgs/XYFaces/zhh_thumb.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cryboyofyu/XYFaceKeyboard/HEAD/XYFaceKeyboard/XYImgs/XYFaces/zhh_thumb.gif -------------------------------------------------------------------------------- /XYFaceKeyboard/XYImgs/XYFaces/zy_thumb.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cryboyofyu/XYFaceKeyboard/HEAD/XYFaceKeyboard/XYImgs/XYFaces/zy_thumb.gif -------------------------------------------------------------------------------- /XYFaceKeyboard/XYImgs/XYFaces/angrya_thumb.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cryboyofyu/XYFaceKeyboard/HEAD/XYFaceKeyboard/XYImgs/XYFaces/angrya_thumb.gif -------------------------------------------------------------------------------- /XYFaceKeyboard/XYImgs/XYFaces/cool_thumb.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cryboyofyu/XYFaceKeyboard/HEAD/XYFaceKeyboard/XYImgs/XYFaces/cool_thumb.gif -------------------------------------------------------------------------------- /XYFaceKeyboard/XYImgs/XYFaces/crazya_thumb.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cryboyofyu/XYFaceKeyboard/HEAD/XYFaceKeyboard/XYImgs/XYFaces/crazya_thumb.gif -------------------------------------------------------------------------------- /XYFaceKeyboard/XYImgs/XYFaces/dizzya_thumb.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cryboyofyu/XYFaceKeyboard/HEAD/XYFaceKeyboard/XYImgs/XYFaces/dizzya_thumb.gif -------------------------------------------------------------------------------- /XYFaceKeyboard/XYImgs/XYFaces/geili_thumb.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cryboyofyu/XYFaceKeyboard/HEAD/XYFaceKeyboard/XYImgs/XYFaces/geili_thumb.gif -------------------------------------------------------------------------------- /XYFaceKeyboard/XYImgs/XYFaces/good_thumb.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cryboyofyu/XYFaceKeyboard/HEAD/XYFaceKeyboard/XYImgs/XYFaces/good_thumb.gif -------------------------------------------------------------------------------- /XYFaceKeyboard/XYImgs/XYFaces/hatea_thumb.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cryboyofyu/XYFaceKeyboard/HEAD/XYFaceKeyboard/XYImgs/XYFaces/hatea_thumb.gif -------------------------------------------------------------------------------- /XYFaceKeyboard/XYImgs/XYFaces/hearta_thumb.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cryboyofyu/XYFaceKeyboard/HEAD/XYFaceKeyboard/XYImgs/XYFaces/hearta_thumb.gif -------------------------------------------------------------------------------- /XYFaceKeyboard/XYImgs/XYFaces/heia_thumb.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cryboyofyu/XYFaceKeyboard/HEAD/XYFaceKeyboard/XYImgs/XYFaces/heia_thumb.gif -------------------------------------------------------------------------------- /XYFaceKeyboard/XYImgs/XYFaces/kbsa_thumb.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cryboyofyu/XYFaceKeyboard/HEAD/XYFaceKeyboard/XYImgs/XYFaces/kbsa_thumb.gif -------------------------------------------------------------------------------- /XYFaceKeyboard/XYImgs/XYFaces/ldln_thumb.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cryboyofyu/XYFaceKeyboard/HEAD/XYFaceKeyboard/XYImgs/XYFaces/ldln_thumb.gif -------------------------------------------------------------------------------- /XYFaceKeyboard/XYImgs/XYFaces/lovea_thumb.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cryboyofyu/XYFaceKeyboard/HEAD/XYFaceKeyboard/XYImgs/XYFaces/lovea_thumb.gif -------------------------------------------------------------------------------- /XYFaceKeyboard/XYImgs/XYFaces/money_thumb.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cryboyofyu/XYFaceKeyboard/HEAD/XYFaceKeyboard/XYImgs/XYFaces/money_thumb.gif -------------------------------------------------------------------------------- /XYFaceKeyboard/XYImgs/XYFaces/sada_thumb.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cryboyofyu/XYFaceKeyboard/HEAD/XYFaceKeyboard/XYImgs/XYFaces/sada_thumb.gif -------------------------------------------------------------------------------- /XYFaceKeyboard/XYImgs/XYFaces/shamea_thumb.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cryboyofyu/XYFaceKeyboard/HEAD/XYFaceKeyboard/XYImgs/XYFaces/shamea_thumb.gif -------------------------------------------------------------------------------- /XYFaceKeyboard/XYImgs/XYFaces/sleepa_thumb.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cryboyofyu/XYFaceKeyboard/HEAD/XYFaceKeyboard/XYImgs/XYFaces/sleepa_thumb.gif -------------------------------------------------------------------------------- /XYFaceKeyboard/XYImgs/XYFaces/smilea_thumb.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cryboyofyu/XYFaceKeyboard/HEAD/XYFaceKeyboard/XYImgs/XYFaces/smilea_thumb.gif -------------------------------------------------------------------------------- /XYFaceKeyboard/XYImgs/XYFaces/sweata_thumb.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cryboyofyu/XYFaceKeyboard/HEAD/XYFaceKeyboard/XYImgs/XYFaces/sweata_thumb.gif -------------------------------------------------------------------------------- /XYFaceKeyboard/XYImgs/XYFaces/tootha_thumb.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cryboyofyu/XYFaceKeyboard/HEAD/XYFaceKeyboard/XYImgs/XYFaces/tootha_thumb.gif -------------------------------------------------------------------------------- /XYFaceKeyboard/XYImgs/XYImgs/icon-biaoqing.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cryboyofyu/XYFaceKeyboard/HEAD/XYFaceKeyboard/XYImgs/XYImgs/icon-biaoqing.png -------------------------------------------------------------------------------- /XYFaceKeyboard/XYImgs/XYImgs/icon_emotion.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cryboyofyu/XYFaceKeyboard/HEAD/XYFaceKeyboard/XYImgs/XYImgs/icon_emotion.png -------------------------------------------------------------------------------- /XYFaceKeyboard/XYImgs/XYFaces/sleepya_thumb.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cryboyofyu/XYFaceKeyboard/HEAD/XYFaceKeyboard/XYImgs/XYFaces/sleepya_thumb.gif -------------------------------------------------------------------------------- /XYFaceKeyboard/XYImgs/XYImgs/icon_emotion@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cryboyofyu/XYFaceKeyboard/HEAD/XYFaceKeyboard/XYImgs/XYImgs/icon_emotion@2x.png -------------------------------------------------------------------------------- /XYFaceKeyboard/XYImgs/XYImgs/icon_emotion@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cryboyofyu/XYFaceKeyboard/HEAD/XYFaceKeyboard/XYImgs/XYImgs/icon_emotion@3x.png -------------------------------------------------------------------------------- /XYFaceKeyboard/XYImgs/XYImgs/xyBtnSelected0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cryboyofyu/XYFaceKeyboard/HEAD/XYFaceKeyboard/XYImgs/XYImgs/xyBtnSelected0.png -------------------------------------------------------------------------------- /XYFaceKeyboard/XYImgs/XYImgs/xyBtnSelected1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cryboyofyu/XYFaceKeyboard/HEAD/XYFaceKeyboard/XYImgs/XYImgs/xyBtnSelected1.png -------------------------------------------------------------------------------- /XYFaceKeyboard/XYImgs/XYImgs/xyBtnSelected2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cryboyofyu/XYFaceKeyboard/HEAD/XYFaceKeyboard/XYImgs/XYImgs/xyBtnSelected2.png -------------------------------------------------------------------------------- /XYFaceKeyboard/XYImgs/XYImgs/xyBtnSelected3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cryboyofyu/XYFaceKeyboard/HEAD/XYFaceKeyboard/XYImgs/XYImgs/xyBtnSelected3.png -------------------------------------------------------------------------------- /XYFaceKeyboard/XYImgs/XYImgs/del_emoji_normal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cryboyofyu/XYFaceKeyboard/HEAD/XYFaceKeyboard/XYImgs/XYImgs/del_emoji_normal.png -------------------------------------------------------------------------------- /XYFaceKeyboard/XYImgs/XYImgs/del_emoji_select.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cryboyofyu/XYFaceKeyboard/HEAD/XYFaceKeyboard/XYImgs/XYImgs/del_emoji_select.png -------------------------------------------------------------------------------- /XYFaceKeyboardExample/XYShowImage/XYFaceShow1.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cryboyofyu/XYFaceKeyboard/HEAD/XYFaceKeyboardExample/XYShowImage/XYFaceShow1.gif -------------------------------------------------------------------------------- /XYFaceKeyboardExample/XYShowImage/XYFaceShow2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cryboyofyu/XYFaceKeyboard/HEAD/XYFaceKeyboardExample/XYShowImage/XYFaceShow2.gif -------------------------------------------------------------------------------- /Pods/Target Support Files/YYText/YYText-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_YYText : NSObject 3 | @end 4 | @implementation PodsDummy_YYText 5 | @end 6 | -------------------------------------------------------------------------------- /Pods/Target Support Files/YYImage/YYImage-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_YYImage : NSObject 3 | @end 4 | @implementation PodsDummy_YYImage 5 | @end 6 | -------------------------------------------------------------------------------- /Pods/Target Support Files/SDWebImage/SDWebImage-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_SDWebImage : NSObject 3 | @end 4 | @implementation PodsDummy_SDWebImage 5 | @end 6 | -------------------------------------------------------------------------------- /XYFaceKeyboardExample.xcodeproj/xcuserdata/XY.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-XYFaceKeyboardExample/Pods-XYFaceKeyboardExample-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_Pods_XYFaceKeyboardExample : NSObject 3 | @end 4 | @implementation PodsDummy_Pods_XYFaceKeyboardExample 5 | @end 6 | -------------------------------------------------------------------------------- /XYFaceKeyboardExample.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /Pods/Target Support Files/YYImage/YYImage-prefix.pch: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | -------------------------------------------------------------------------------- /Pods/Target Support Files/YYText/YYText-prefix.pch: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | -------------------------------------------------------------------------------- /Pods/Target Support Files/SDWebImage/SDWebImage-prefix.pch: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | -------------------------------------------------------------------------------- /XYFaceKeyboardExample/ViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // ViewController.h 3 | // XYFaceKeyboardExample 4 | // 5 | // Created by XY Lv on 16/12/20. 6 | // Copyright © 2016年 吕欣宇. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface ViewController : UIViewController 12 | 13 | 14 | @end 15 | 16 | -------------------------------------------------------------------------------- /XYFaceKeyboardExample.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /Pods/SDWebImage/SDWebImage/UIImage+MultiFormat.h: -------------------------------------------------------------------------------- 1 | // 2 | // UIImage+MultiFormat.h 3 | // SDWebImage 4 | // 5 | // Created by Olivier Poitrey on 07/06/13. 6 | // Copyright (c) 2013 Dailymotion. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface UIImage (MultiFormat) 12 | 13 | + (UIImage *)sd_imageWithData:(NSData *)data; 14 | 15 | @end 16 | -------------------------------------------------------------------------------- /XYFaceKeyboardExample/AppDelegate.h: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.h 3 | // XYFaceKeyboardExample 4 | // 5 | // Created by XY Lv on 16/12/20. 6 | // Copyright © 2016年 吕欣宇. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface AppDelegate : UIResponder 12 | 13 | @property (strong, nonatomic) UIWindow *window; 14 | 15 | 16 | @end 17 | 18 | -------------------------------------------------------------------------------- /XYFaceKeyboardExample/main.m: -------------------------------------------------------------------------------- 1 | // 2 | // main.m 3 | // XYFaceKeyboardExample 4 | // 5 | // Created by XY Lv on 16/12/20. 6 | // Copyright © 2016年 吕欣宇. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "AppDelegate.h" 11 | 12 | int main(int argc, char * argv[]) { 13 | @autoreleasepool { 14 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /Pods/SDWebImage/SDWebImage/SDWebImageOperation.h: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of the SDWebImage package. 3 | * (c) Olivier Poitrey 4 | * 5 | * For the full copyright and license information, please view the LICENSE 6 | * file that was distributed with this source code. 7 | */ 8 | 9 | #import 10 | 11 | @protocol SDWebImageOperation 12 | 13 | - (void)cancel; 14 | 15 | @end 16 | -------------------------------------------------------------------------------- /Pods/SDWebImage/SDWebImage/UIImage+GIF.h: -------------------------------------------------------------------------------- 1 | // 2 | // UIImage+GIF.h 3 | // LBGIFImage 4 | // 5 | // Created by Laurin Brandner on 06.01.12. 6 | // Copyright (c) 2012 __MyCompanyName__. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface UIImage (GIF) 12 | 13 | + (UIImage *)sd_animatedGIFNamed:(NSString *)name; 14 | 15 | + (UIImage *)sd_animatedGIFWithData:(NSData *)data; 16 | 17 | - (UIImage *)sd_animatedImageByScalingAndCroppingToSize:(CGSize)size; 18 | 19 | @end 20 | -------------------------------------------------------------------------------- /XYFaceKeyboard/XYViews/XYPageControl.h: -------------------------------------------------------------------------------- 1 | // 2 | // XYPageControl.h 3 | // XYFaceKeyboardExample 4 | // 5 | // Created by XY Lv on 16/12/20. 6 | // Copyright © 2016年 吕欣宇. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface XYPageControl : UIPageControl 12 | 13 | @property (nonatomic,strong)UIImage * xy_selectedImg; 14 | @property (nonatomic,strong)UIImage * xy_unselectedImg; 15 | 16 | @end 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | -------------------------------------------------------------------------------- /Pods/SDWebImage/SDWebImage/SDWebImageDecoder.h: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of the SDWebImage package. 3 | * (c) Olivier Poitrey 4 | * 5 | * Created by james on 9/28/11. 6 | * 7 | * For the full copyright and license information, please view the LICENSE 8 | * file that was distributed with this source code. 9 | */ 10 | 11 | #import 12 | #import "SDWebImageCompat.h" 13 | 14 | @interface UIImage (ForceDecode) 15 | 16 | + (UIImage *)decodedImageWithImage:(UIImage *)image; 17 | 18 | @end 19 | -------------------------------------------------------------------------------- /Podfile.lock: -------------------------------------------------------------------------------- 1 | PODS: 2 | - SDWebImage (3.8.2): 3 | - SDWebImage/Core (= 3.8.2) 4 | - SDWebImage/Core (3.8.2) 5 | - YYImage (1.0.4): 6 | - YYImage/Core (= 1.0.4) 7 | - YYImage/Core (1.0.4) 8 | - YYText (1.0.7) 9 | 10 | DEPENDENCIES: 11 | - SDWebImage 12 | - YYImage 13 | - YYText 14 | 15 | SPEC CHECKSUMS: 16 | SDWebImage: 098e97e6176540799c27e804c96653ee0833d13c 17 | YYImage: 1e1b62a9997399593e4b9c4ecfbbabbf1d3f3b54 18 | YYText: 5c461d709e24d55a182d1441c41dc639a18a4849 19 | 20 | PODFILE CHECKSUM: 4116f770db42850f4719585d6e85edfc63299e3f 21 | 22 | COCOAPODS: 1.2.0.beta.1 23 | -------------------------------------------------------------------------------- /Pods/Manifest.lock: -------------------------------------------------------------------------------- 1 | PODS: 2 | - SDWebImage (3.8.2): 3 | - SDWebImage/Core (= 3.8.2) 4 | - SDWebImage/Core (3.8.2) 5 | - YYImage (1.0.4): 6 | - YYImage/Core (= 1.0.4) 7 | - YYImage/Core (1.0.4) 8 | - YYText (1.0.7) 9 | 10 | DEPENDENCIES: 11 | - SDWebImage 12 | - YYImage 13 | - YYText 14 | 15 | SPEC CHECKSUMS: 16 | SDWebImage: 098e97e6176540799c27e804c96653ee0833d13c 17 | YYImage: 1e1b62a9997399593e4b9c4ecfbbabbf1d3f3b54 18 | YYText: 5c461d709e24d55a182d1441c41dc639a18a4849 19 | 20 | PODFILE CHECKSUM: 4116f770db42850f4719585d6e85edfc63299e3f 21 | 22 | COCOAPODS: 1.2.0.beta.1 23 | -------------------------------------------------------------------------------- /XYFaceKeyboard/XYSource/XYFace1.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | xy_1.gif 6 | [顶] 7 | xy_2.gif 8 | [赞] 9 | xy_3.gif 10 | [掌声] 11 | xy_4.gif 12 | [鲜花] 13 | xy_5.gif 14 | [看多] 15 | xy_6.gif 16 | [看空] 17 | xy_7.gif 18 | [震荡] 19 | 20 | 21 | -------------------------------------------------------------------------------- /Pods/SDWebImage/SDWebImage/NSData+ImageContentType.h: -------------------------------------------------------------------------------- 1 | // 2 | // Created by Fabrice Aneche on 06/01/14. 3 | // Copyright (c) 2014 Dailymotion. All rights reserved. 4 | // 5 | 6 | #import 7 | 8 | @interface NSData (ImageContentType) 9 | 10 | /** 11 | * Compute the content type for an image data 12 | * 13 | * @param data the input data 14 | * 15 | * @return the content type as string (i.e. image/jpeg, image/gif) 16 | */ 17 | + (NSString *)sd_contentTypeForImageData:(NSData *)data; 18 | 19 | @end 20 | 21 | 22 | @interface NSData (ImageContentTypeDeprecated) 23 | 24 | + (NSString *)contentTypeForImageData:(NSData *)data __deprecated_msg("Use `sd_contentTypeForImageData:`"); 25 | 26 | @end 27 | -------------------------------------------------------------------------------- /Pods/Target Support Files/SDWebImage/SDWebImage.xcconfig: -------------------------------------------------------------------------------- 1 | CONFIGURATION_BUILD_DIR = $PODS_CONFIGURATION_BUILD_DIR/SDWebImage 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/SDWebImage" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/SDWebImage" "${PODS_ROOT}/Headers/Public/YYImage" "${PODS_ROOT}/Headers/Public/YYText" 4 | OTHER_LDFLAGS = -framework "ImageIO" 5 | PODS_BUILD_DIR = $BUILD_DIR 6 | PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 7 | PODS_ROOT = ${SRCROOT} 8 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/SDWebImage 9 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 10 | SKIP_INSTALL = YES 11 | -------------------------------------------------------------------------------- /XYFaceKeyboardExampleTests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | BNDL 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleVersion 20 | 1 21 | 22 | 23 | -------------------------------------------------------------------------------- /XYFaceKeyboardExampleUITests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | BNDL 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleVersion 20 | 1 21 | 22 | 23 | -------------------------------------------------------------------------------- /Pods/Target Support Files/YYText/YYText.xcconfig: -------------------------------------------------------------------------------- 1 | CONFIGURATION_BUILD_DIR = $PODS_CONFIGURATION_BUILD_DIR/YYText 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/YYText" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/SDWebImage" "${PODS_ROOT}/Headers/Public/YYImage" "${PODS_ROOT}/Headers/Public/YYText" 4 | OTHER_LDFLAGS = -framework "Accelerate" -framework "CoreFoundation" -framework "CoreText" -framework "MobileCoreServices" -framework "QuartzCore" -framework "UIKit" 5 | PODS_BUILD_DIR = $BUILD_DIR 6 | PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 7 | PODS_ROOT = ${SRCROOT} 8 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/YYText 9 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 10 | SKIP_INSTALL = YES 11 | -------------------------------------------------------------------------------- /XYFaceKeyboardExample.xcodeproj/xcuserdata/XY.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SchemeUserState 6 | 7 | XYFaceKeyboardExample.xcscheme 8 | 9 | orderHint 10 | 0 11 | 12 | 13 | SuppressBuildableAutocreation 14 | 15 | 14BA0F921E08D80C00A6A5E7 16 | 17 | primary 18 | 19 | 20 | 14BA0FAB1E08D80C00A6A5E7 21 | 22 | primary 23 | 24 | 25 | 14BA0FB61E08D80C00A6A5E7 26 | 27 | primary 28 | 29 | 30 | 31 | 32 | 33 | -------------------------------------------------------------------------------- /Pods/Target Support Files/YYImage/YYImage.xcconfig: -------------------------------------------------------------------------------- 1 | CONFIGURATION_BUILD_DIR = $PODS_CONFIGURATION_BUILD_DIR/YYImage 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/YYImage" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/SDWebImage" "${PODS_ROOT}/Headers/Public/YYImage" "${PODS_ROOT}/Headers/Public/YYText" 4 | OTHER_LDFLAGS = -l"z" -framework "Accelerate" -framework "AssetsLibrary" -framework "CoreFoundation" -framework "ImageIO" -framework "MobileCoreServices" -framework "QuartzCore" -framework "UIKit" 5 | PODS_BUILD_DIR = $BUILD_DIR 6 | PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 7 | PODS_ROOT = ${SRCROOT} 8 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/YYImage 9 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 10 | SKIP_INSTALL = YES 11 | -------------------------------------------------------------------------------- /XYFaceKeyboard/XYViews/XYKEYBOARDCONFIG.h: -------------------------------------------------------------------------------- 1 | // 2 | // LVKEYBOARDCONFIG.h 3 | // MeetU 4 | // 5 | // Created by LV on 16/7/28. 6 | // Copyright © 2016年 cryboy. All rights reserved. 7 | // 8 | 9 | #define xy_width [UIScreen mainScreen].bounds.size.width 10 | #define xy_height [UIScreen mainScreen].bounds.size.height 11 | #define xy(number) ([UIScreen mainScreen].bounds.size.width/320.00f *(number)) 12 | #define xy_commentBoxH xy(49) 13 | #define xy_textViewH xy(39) 14 | #define xy_textViewW xy_width - xy(5)*3 - xy_textViewH 15 | #define xy_emotionBtnW xy_textViewH 16 | #define xy_leftDistance xy(5) 17 | #define xy_textViewFont xy(16) 18 | #define xy_emotionKeyboarH xy(216) 19 | #define xy_padding xy(5) 20 | #define xy_grayColor [UIColor colorWithRed:0.95 green:0.95 blue:0.95 alpha:1.00] 21 | #define xy_placeholderColor [UIColor colorWithRed:0.71 green:0.72 blue:0.72 alpha:1.00] 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | -------------------------------------------------------------------------------- /XYFaceKeyboardExample.xcworkspace/xcuserdata/XY.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 8 | 20 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /Pods/YYText/YYText/Utility/NSParagraphStyle+YYText.h: -------------------------------------------------------------------------------- 1 | // 2 | // NSParagraphStyle+YYText.h 3 | // YYText 4 | // 5 | // Created by ibireme on 14/10/7. 6 | // Copyright (c) 2015 ibireme. 7 | // 8 | // This source code is licensed under the MIT-style license found in the 9 | // LICENSE file in the root directory of this source tree. 10 | // 11 | 12 | #import 13 | 14 | NS_ASSUME_NONNULL_BEGIN 15 | 16 | /** 17 | Provides extensions for `NSParagraphStyle` to work with CoreText. 18 | */ 19 | @interface NSParagraphStyle (YYText) 20 | 21 | /** 22 | Creates a new NSParagraphStyle object from the CoreText Style. 23 | 24 | @param CTStyle CoreText Paragraph Style. 25 | 26 | @return a new NSParagraphStyle 27 | */ 28 | + (nullable NSParagraphStyle *)yy_styleWithCTStyle:(CTParagraphStyleRef)CTStyle; 29 | 30 | /** 31 | Creates and returns a CoreText Paragraph Style. (need call CFRelease() after used) 32 | */ 33 | - (nullable CTParagraphStyleRef)yy_CTStyle CF_RETURNS_RETAINED; 34 | 35 | @end 36 | 37 | NS_ASSUME_NONNULL_END 38 | -------------------------------------------------------------------------------- /Pods/YYText/YYText/String/YYTextArchiver.h: -------------------------------------------------------------------------------- 1 | // 2 | // YYTextArchiver.h 3 | // YYText 4 | // 5 | // Created by ibireme on 15/3/16. 6 | // Copyright (c) 2015 ibireme. 7 | // 8 | // This source code is licensed under the MIT-style license found in the 9 | // LICENSE file in the root directory of this source tree. 10 | // 11 | 12 | #import 13 | 14 | NS_ASSUME_NONNULL_BEGIN 15 | 16 | /** 17 | A subclass of `NSKeyedArchiver` which implement `NSKeyedArchiverDelegate` protocol. 18 | 19 | The archiver can encode the object which contains 20 | CGColor/CGImage/CTRunDelegateRef/.. (such as NSAttributedString). 21 | */ 22 | @interface YYTextArchiver : NSKeyedArchiver 23 | @end 24 | 25 | /** 26 | A subclass of `NSKeyedUnarchiver` which implement `NSKeyedUnarchiverDelegate` 27 | protocol. The unarchiver can decode the data which is encoded by 28 | `YYTextArchiver` or `NSKeyedArchiver`. 29 | */ 30 | @interface YYTextUnarchiver : NSKeyedUnarchiver 31 | @end 32 | 33 | NS_ASSUME_NONNULL_END 34 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-XYFaceKeyboardExample/Pods-XYFaceKeyboardExample.debug.xcconfig: -------------------------------------------------------------------------------- 1 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 2 | HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/SDWebImage" "${PODS_ROOT}/Headers/Public/YYImage" "${PODS_ROOT}/Headers/Public/YYText" 3 | LIBRARY_SEARCH_PATHS = $(inherited) "$PODS_CONFIGURATION_BUILD_DIR/SDWebImage" "$PODS_CONFIGURATION_BUILD_DIR/YYImage" "$PODS_CONFIGURATION_BUILD_DIR/YYText" 4 | OTHER_CFLAGS = $(inherited) -isystem "${PODS_ROOT}/Headers/Public" -isystem "${PODS_ROOT}/Headers/Public/SDWebImage" -isystem "${PODS_ROOT}/Headers/Public/YYImage" -isystem "${PODS_ROOT}/Headers/Public/YYText" 5 | OTHER_LDFLAGS = $(inherited) -ObjC -l"SDWebImage" -l"YYImage" -l"YYText" -l"z" -framework "Accelerate" -framework "AssetsLibrary" -framework "CoreFoundation" -framework "CoreText" -framework "ImageIO" -framework "MobileCoreServices" -framework "QuartzCore" -framework "UIKit" 6 | PODS_BUILD_DIR = $BUILD_DIR 7 | PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 8 | PODS_ROOT = ${SRCROOT}/Pods 9 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-XYFaceKeyboardExample/Pods-XYFaceKeyboardExample.release.xcconfig: -------------------------------------------------------------------------------- 1 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 2 | HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/SDWebImage" "${PODS_ROOT}/Headers/Public/YYImage" "${PODS_ROOT}/Headers/Public/YYText" 3 | LIBRARY_SEARCH_PATHS = $(inherited) "$PODS_CONFIGURATION_BUILD_DIR/SDWebImage" "$PODS_CONFIGURATION_BUILD_DIR/YYImage" "$PODS_CONFIGURATION_BUILD_DIR/YYText" 4 | OTHER_CFLAGS = $(inherited) -isystem "${PODS_ROOT}/Headers/Public" -isystem "${PODS_ROOT}/Headers/Public/SDWebImage" -isystem "${PODS_ROOT}/Headers/Public/YYImage" -isystem "${PODS_ROOT}/Headers/Public/YYText" 5 | OTHER_LDFLAGS = $(inherited) -ObjC -l"SDWebImage" -l"YYImage" -l"YYText" -l"z" -framework "Accelerate" -framework "AssetsLibrary" -framework "CoreFoundation" -framework "CoreText" -framework "ImageIO" -framework "MobileCoreServices" -framework "QuartzCore" -framework "UIKit" 6 | PODS_BUILD_DIR = $BUILD_DIR 7 | PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 8 | PODS_ROOT = ${SRCROOT}/Pods 9 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2016 cryboy 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /XYFaceKeyboardExampleTests/XYFaceKeyboardExampleTests.m: -------------------------------------------------------------------------------- 1 | // 2 | // XYFaceKeyboardExampleTests.m 3 | // XYFaceKeyboardExampleTests 4 | // 5 | // Created by XY Lv on 16/12/20. 6 | // Copyright © 2016年 吕欣宇. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface XYFaceKeyboardExampleTests : XCTestCase 12 | 13 | @end 14 | 15 | @implementation XYFaceKeyboardExampleTests 16 | 17 | - (void)setUp { 18 | [super setUp]; 19 | // Put setup code here. This method is called before the invocation of each test method in the class. 20 | } 21 | 22 | - (void)tearDown { 23 | // Put teardown code here. This method is called after the invocation of each test method in the class. 24 | [super tearDown]; 25 | } 26 | 27 | - (void)testExample { 28 | // This is an example of a functional test case. 29 | // Use XCTAssert and related functions to verify your tests produce the correct results. 30 | } 31 | 32 | - (void)testPerformanceExample { 33 | // This is an example of a performance test case. 34 | [self measureBlock:^{ 35 | // Put the code you want to measure the time of here. 36 | }]; 37 | } 38 | 39 | @end 40 | -------------------------------------------------------------------------------- /XYFaceKeyboard.podspec: -------------------------------------------------------------------------------- 1 | Pod::Spec.new do |s| 2 | 3 | s.name = "XYFaceKeyboard" 4 | s.version = "0.0.1" 5 | s.summary = "a custom face keyboard" 6 | s.description = <<-DESC 7 | a custom face keyboard(you can add youself face images) 8 | DESC 9 | 10 | s.homepage = "https://github.com/cryboyofyu/XYFaceKeyboard.git" 11 | 12 | s.license = "MIT" 13 | # s.license = { :type => "MIT", :file => "FILE_LICENSE" } 14 | 15 | 16 | 17 | 18 | s.author = { "LV" => "cryboyofyu@gmail.com" } 19 | # Or just: s.author = "LV" 20 | # s.authors = { "LV" => "cryboyofyu@gmail.com" } 21 | s.platform = :ios, "7.0" 22 | 23 | s.source = { :git => "https://github.com/cryboyofyu/XYFaceKeyboard.git", :tag => "0.0.1" } 24 | 25 | 26 | s.source_files = "XYFaceKeyboard/XYViews/*.{h,m}" 27 | 28 | 29 | s.resources = "XYFaceKeyboard/XYImgs/**/*.{png,gif}" 30 | s.resources = "XYFaceKeyboard/XYSource/*.plist" 31 | 32 | 33 | s.framework = "UIKit" 34 | s.requires_arc = true 35 | s.dependency 'YYImage' 36 | s.dependency 'SDWebImage' 37 | s.dependency 'YYText' 38 | end 39 | -------------------------------------------------------------------------------- /Pods/SDWebImage/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2016 Olivier Poitrey rs@dailymotion.com 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy 4 | of this software and associated documentation files (the "Software"), to deal 5 | in the Software without restriction, including without limitation the rights 6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7 | copies of the Software, and to permit persons to whom the Software is furnished 8 | to do so, subject to the following conditions: 9 | 10 | The above copyright notice and this permission notice shall be included in all 11 | copies or substantial portions of the Software. 12 | 13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 19 | THE SOFTWARE. 20 | 21 | -------------------------------------------------------------------------------- /Pods/SDWebImage/SDWebImage/UIView+WebCacheOperation.h: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of the SDWebImage package. 3 | * (c) Olivier Poitrey 4 | * 5 | * For the full copyright and license information, please view the LICENSE 6 | * file that was distributed with this source code. 7 | */ 8 | 9 | #import 10 | #import "SDWebImageManager.h" 11 | 12 | @interface UIView (WebCacheOperation) 13 | 14 | /** 15 | * Set the image load operation (storage in a UIView based dictionary) 16 | * 17 | * @param operation the operation 18 | * @param key key for storing the operation 19 | */ 20 | - (void)sd_setImageLoadOperation:(id)operation forKey:(NSString *)key; 21 | 22 | /** 23 | * Cancel all operations for the current UIView and key 24 | * 25 | * @param key key for identifying the operations 26 | */ 27 | - (void)sd_cancelImageLoadOperationWithKey:(NSString *)key; 28 | 29 | /** 30 | * Just remove the operations corresponding to the current UIView and key without cancelling them 31 | * 32 | * @param key key for identifying the operations 33 | */ 34 | - (void)sd_removeImageLoadOperationWithKey:(NSString *)key; 35 | 36 | @end 37 | -------------------------------------------------------------------------------- /Pods/YYImage/LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2015 ibireme 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | 23 | -------------------------------------------------------------------------------- /Pods/YYText/LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2015 ibireme 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | 23 | -------------------------------------------------------------------------------- /XYFaceKeyboard/XYViews/UIButton+XYButton.h: -------------------------------------------------------------------------------- 1 | // 2 | // UIButton+XYButton.h 3 | // XYWeiboExample 4 | // 5 | // Created by XY Lv on 16/12/12. 6 | // Copyright © 2016年 吕欣宇. All rights reserved. 7 | // github:https://github.com/cryboyofyu 8 | // 博客:http://blog.csdn.net/cry__boy 9 | 10 | #import 11 | //#import "XYWeiboCONSTANT.h" 12 | @interface UIButton (XYButton) 13 | 14 | @property (nonatomic,strong)NSString * xy_btnBgImgName; 15 | 16 | @end 17 | 18 | @interface UIView (XYView) 19 | 20 | @property (nonatomic,strong)NSNumber * xy_viewHeight; 21 | @end 22 | 23 | @interface NSString (XYString) 24 | - (NSMutableString *)xy_dealTheMessage; 25 | 26 | - (NSString *)xy_getDownloadImgPath; 27 | 28 | @end 29 | 30 | @interface NSData (XYData) 31 | 32 | /** 33 | 模仿SDWebImage原理,有就从本地取,否:走网络 34 | 35 | @param urlStr 图片地址 36 | 37 | @return image NSData类型 38 | */ 39 | +(NSData *)xy_getDataWithContentOfUrl:(NSString *)urlStr; 40 | 41 | @end 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | -------------------------------------------------------------------------------- /XYFaceKeyboard/XYViews/XYFaceKeyboard.h: -------------------------------------------------------------------------------- 1 | // 2 | // XYFaceKeyboard.h 3 | // XYFaceKeyboardExample 4 | // 5 | // Created by XY Lv on 16/12/20. 6 | // Copyright © 2016年 吕欣宇. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @protocol XYFaceboardDelegate 12 | 13 | @optional 14 | - (void)xy_textViewDicChange:(UITextView *)textView; 15 | 16 | @end 17 | 18 | @interface XYFaceKeyboard : UIView 19 | @property (nonatomic,weak)idxy_delegate; 20 | @property (nonatomic,strong)UITextView * xy_inputTextView; 21 | @property (nonatomic,strong)UITextField * xy_inputTF; 22 | @property (nonatomic,copy) void(^xySendFaceBlock)(NSString * str); 23 | @property (nonatomic,strong)NSMutableArray * xy_faceCategoryBtnsMArr; 24 | @property (nonatomic,strong)NSMutableArray * xy_categoryNormalMArr;//未选中:可加图片或文字 25 | @property (nonatomic,strong)NSMutableArray * xy_categorySelectedMArr;//选中:可加图片或文字 26 | @property (nonatomic,strong)NSMutableArray * xy_categoryTitleColor_normalMArr;//未选中文字颜色 27 | @property (nonatomic,strong)NSMutableArray * xy_categoryTitleColor_selectedMArr;//选中文字颜色 28 | 29 | - (void)xy_reloadFaceKeyboard; 30 | 31 | @end 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | -------------------------------------------------------------------------------- /Pods/Pods.xcodeproj/xcuserdata/XY.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SchemeUserState 6 | 7 | Pods-XYFaceKeyboardExample.xcscheme 8 | 9 | isShown 10 | 11 | 12 | SDWebImage.xcscheme 13 | 14 | isShown 15 | 16 | 17 | YYImage.xcscheme 18 | 19 | isShown 20 | 21 | 22 | YYText.xcscheme 23 | 24 | isShown 25 | 26 | 27 | 28 | SuppressBuildableAutocreation 29 | 30 | 46CA54213DD7FFB9A8D59006C24DE3C1 31 | 32 | primary 33 | 34 | 35 | 7DF1CD39CDECB43E006C097B37F6F459 36 | 37 | primary 38 | 39 | 40 | DCF3316A17CE6566D68B277239E1CE46 41 | 42 | primary 43 | 44 | 45 | E342C29050DF9822C02CF41D8AC9F86B 46 | 47 | primary 48 | 49 | 50 | 51 | 52 | 53 | -------------------------------------------------------------------------------- /Pods/YYText/YYText/Utility/YYTextTransaction.h: -------------------------------------------------------------------------------- 1 | // 2 | // YYTextTransaction.h 3 | // YYText 4 | // 5 | // Created by ibireme on 15/4/18. 6 | // Copyright (c) 2015 ibireme. 7 | // 8 | // This source code is licensed under the MIT-style license found in the 9 | // LICENSE file in the root directory of this source tree. 10 | // 11 | 12 | #import 13 | 14 | NS_ASSUME_NONNULL_BEGIN 15 | 16 | /** 17 | YYTextTransaction let you perform a selector once before current runloop sleep. 18 | */ 19 | @interface YYTextTransaction : NSObject 20 | 21 | /** 22 | Creates and returns a transaction with a specified target and selector. 23 | 24 | @param target A specified target, the target is retained until runloop end. 25 | @param selector A selector for target. 26 | 27 | @return A new transaction, or nil if an error occurs. 28 | */ 29 | + (YYTextTransaction *)transactionWithTarget:(id)target selector:(SEL)selector; 30 | 31 | /** 32 | Commit the trancaction to main runloop. 33 | 34 | @discussion It will perform the selector on the target once before main runloop's 35 | current loop sleep. If the same transaction (same target and same selector) has 36 | already commit to runloop in this loop, this method do nothing. 37 | */ 38 | - (void)commit; 39 | 40 | @end 41 | 42 | NS_ASSUME_NONNULL_END 43 | -------------------------------------------------------------------------------- /Pods/SDWebImage/SDWebImage/NSData+ImageContentType.m: -------------------------------------------------------------------------------- 1 | // 2 | // Created by Fabrice Aneche on 06/01/14. 3 | // Copyright (c) 2014 Dailymotion. All rights reserved. 4 | // 5 | 6 | #import "NSData+ImageContentType.h" 7 | 8 | 9 | @implementation NSData (ImageContentType) 10 | 11 | + (NSString *)sd_contentTypeForImageData:(NSData *)data { 12 | uint8_t c; 13 | [data getBytes:&c length:1]; 14 | switch (c) { 15 | case 0xFF: 16 | return @"image/jpeg"; 17 | case 0x89: 18 | return @"image/png"; 19 | case 0x47: 20 | return @"image/gif"; 21 | case 0x49: 22 | case 0x4D: 23 | return @"image/tiff"; 24 | case 0x52: 25 | // R as RIFF for WEBP 26 | if ([data length] < 12) { 27 | return nil; 28 | } 29 | 30 | NSString *testString = [[NSString alloc] initWithData:[data subdataWithRange:NSMakeRange(0, 12)] encoding:NSASCIIStringEncoding]; 31 | if ([testString hasPrefix:@"RIFF"] && [testString hasSuffix:@"WEBP"]) { 32 | return @"image/webp"; 33 | } 34 | 35 | return nil; 36 | } 37 | return nil; 38 | } 39 | 40 | @end 41 | 42 | 43 | @implementation NSData (ImageContentTypeDeprecated) 44 | 45 | + (NSString *)contentTypeForImageData:(NSData *)data { 46 | return [self sd_contentTypeForImageData:data]; 47 | } 48 | 49 | @end 50 | -------------------------------------------------------------------------------- /XYFaceKeyboardExample/Assets.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "iphone", 5 | "size" : "29x29", 6 | "scale" : "2x" 7 | }, 8 | { 9 | "idiom" : "iphone", 10 | "size" : "29x29", 11 | "scale" : "3x" 12 | }, 13 | { 14 | "idiom" : "iphone", 15 | "size" : "40x40", 16 | "scale" : "2x" 17 | }, 18 | { 19 | "idiom" : "iphone", 20 | "size" : "40x40", 21 | "scale" : "3x" 22 | }, 23 | { 24 | "idiom" : "iphone", 25 | "size" : "60x60", 26 | "scale" : "2x" 27 | }, 28 | { 29 | "idiom" : "iphone", 30 | "size" : "60x60", 31 | "scale" : "3x" 32 | }, 33 | { 34 | "idiom" : "ipad", 35 | "size" : "29x29", 36 | "scale" : "1x" 37 | }, 38 | { 39 | "idiom" : "ipad", 40 | "size" : "29x29", 41 | "scale" : "2x" 42 | }, 43 | { 44 | "idiom" : "ipad", 45 | "size" : "40x40", 46 | "scale" : "1x" 47 | }, 48 | { 49 | "idiom" : "ipad", 50 | "size" : "40x40", 51 | "scale" : "2x" 52 | }, 53 | { 54 | "idiom" : "ipad", 55 | "size" : "76x76", 56 | "scale" : "1x" 57 | }, 58 | { 59 | "idiom" : "ipad", 60 | "size" : "76x76", 61 | "scale" : "2x" 62 | } 63 | ], 64 | "info" : { 65 | "version" : 1, 66 | "author" : "xcode" 67 | } 68 | } -------------------------------------------------------------------------------- /XYFaceKeyboardExampleUITests/XYFaceKeyboardExampleUITests.m: -------------------------------------------------------------------------------- 1 | // 2 | // XYFaceKeyboardExampleUITests.m 3 | // XYFaceKeyboardExampleUITests 4 | // 5 | // Created by XY Lv on 16/12/20. 6 | // Copyright © 2016年 吕欣宇. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface XYFaceKeyboardExampleUITests : XCTestCase 12 | 13 | @end 14 | 15 | @implementation XYFaceKeyboardExampleUITests 16 | 17 | - (void)setUp { 18 | [super setUp]; 19 | 20 | // Put setup code here. This method is called before the invocation of each test method in the class. 21 | 22 | // In UI tests it is usually best to stop immediately when a failure occurs. 23 | self.continueAfterFailure = NO; 24 | // UI tests must launch the application that they test. Doing this in setup will make sure it happens for each test method. 25 | [[[XCUIApplication alloc] init] launch]; 26 | 27 | // In UI tests it’s important to set the initial state - such as interface orientation - required for your tests before they run. The setUp method is a good place to do this. 28 | } 29 | 30 | - (void)tearDown { 31 | // Put teardown code here. This method is called after the invocation of each test method in the class. 32 | [super tearDown]; 33 | } 34 | 35 | - (void)testExample { 36 | // Use recording to get started writing UI tests. 37 | // Use XCTAssert and related functions to verify your tests produce the correct results. 38 | } 39 | 40 | @end 41 | -------------------------------------------------------------------------------- /XYFaceKeyboard/XYViews/XYInputBox.h: -------------------------------------------------------------------------------- 1 | // 2 | // XYInputBox.h 3 | // XYFaceKeyboardExample 4 | // 5 | // Created by XY Lv on 16/12/20. 6 | // Copyright © 2016年 吕欣宇. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "XYFaceKeyboard.h" 11 | 12 | @interface XYInputBox : UIView 13 | 14 | 15 | @property (nonatomic,strong)UITextView * xy_textView; 16 | @property (nonatomic,strong)UILabel * xy_placeholderLabel; 17 | @property (nonatomic,strong)UIButton * xy_sendBtn; 18 | @property (nonatomic,strong)UIButton * xy_toFaceBtn; 19 | @property (nonatomic,strong)XYFaceKeyboard * xy_faceKeyboard; 20 | 21 | @property (nonatomic,assign)BOOL xy_isKeyboardShow; 22 | @property (nonatomic,strong)UIView * xy_bgView; 23 | @property (nonatomic,assign)id xy_delegate; 24 | 25 | - (instancetype)initWithFrame:(CGRect)frame withBgView:(UIView *)bgView; 26 | - (void)xy_createInputBox; 27 | - (void)xy_keyboardResignFirstResponder; 28 | - (void)xy_textViewBegainEdit; 29 | @end 30 | 31 | @protocol XYMessageDelegate 32 | 33 | - (void)xy_getMessage:(NSString *)message; 34 | 35 | @optional 36 | - (void)xy_keyboardWillShowWithKeyboardHeight:(CGFloat)height; 37 | 38 | 39 | 40 | @end 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | -------------------------------------------------------------------------------- /Pods/YYText/YYText/Utility/YYTextWeakProxy.h: -------------------------------------------------------------------------------- 1 | // 2 | // YYTextWeakProxy.h 3 | // YYText 4 | // 5 | // Created by ibireme on 14/10/18. 6 | // Copyright (c) 2015 ibireme. 7 | // 8 | // This source code is licensed under the MIT-style license found in the 9 | // LICENSE file in the root directory of this source tree. 10 | // 11 | 12 | #import 13 | 14 | NS_ASSUME_NONNULL_BEGIN 15 | 16 | /** 17 | A proxy used to hold a weak object. 18 | It can be used to avoid retain cycles, such as the target in NSTimer or CADisplayLink. 19 | 20 | sample code: 21 | 22 | @implementation MyView { 23 | NSTimer *_timer; 24 | } 25 | 26 | - (void)initTimer { 27 | YYTextWeakProxy *proxy = [YYTextWeakProxy proxyWithTarget:self]; 28 | _timer = [NSTimer timerWithTimeInterval:0.1 target:proxy selector:@selector(tick:) userInfo:nil repeats:YES]; 29 | } 30 | 31 | - (void)tick:(NSTimer *)timer {...} 32 | @end 33 | */ 34 | @interface YYTextWeakProxy : NSProxy 35 | 36 | /** 37 | The proxy target. 38 | */ 39 | @property (nullable, nonatomic, weak, readonly) id target; 40 | 41 | /** 42 | Creates a new weak proxy for target. 43 | 44 | @param target Target object. 45 | 46 | @return A new proxy object. 47 | */ 48 | - (instancetype)initWithTarget:(id)target; 49 | 50 | /** 51 | Creates a new weak proxy for target. 52 | 53 | @param target Target object. 54 | 55 | @return A new proxy object. 56 | */ 57 | + (instancetype)proxyWithTarget:(id)target; 58 | 59 | @end 60 | 61 | NS_ASSUME_NONNULL_END 62 | -------------------------------------------------------------------------------- /Pods/YYText/YYText/Utility/UIPasteboard+YYText.h: -------------------------------------------------------------------------------- 1 | // 2 | // UIPasteboard+YYText.h 3 | // YYText 4 | // 5 | // Created by ibireme on 15/4/2. 6 | // Copyright (c) 2015 ibireme. 7 | // 8 | // This source code is licensed under the MIT-style license found in the 9 | // LICENSE file in the root directory of this source tree. 10 | // 11 | 12 | #import 13 | 14 | NS_ASSUME_NONNULL_BEGIN 15 | 16 | /** 17 | Extend UIPasteboard to support image and attributed string. 18 | */ 19 | @interface UIPasteboard (YYText) 20 | 21 | @property (nullable, nonatomic, copy) NSData *yy_PNGData; ///< PNG file data 22 | @property (nullable, nonatomic, copy) NSData *yy_JPEGData; ///< JPEG file data 23 | @property (nullable, nonatomic, copy) NSData *yy_GIFData; ///< GIF file data 24 | @property (nullable, nonatomic, copy) NSData *yy_WEBPData; ///< WebP file data 25 | @property (nullable, nonatomic, copy) NSData *yy_ImageData; ///< image file data 26 | 27 | /// Attributed string, 28 | /// Set this attributed will also set the string property which is copy from the attributed string. 29 | /// If the attributed string contains one or more image, it will also set the `images` property. 30 | @property (nullable, nonatomic, copy) NSAttributedString *yy_AttributedString; 31 | 32 | @end 33 | 34 | 35 | /// The name identifying the attributed string in pasteboard. 36 | UIKIT_EXTERN NSString *const YYTextPasteboardTypeAttributedString; 37 | 38 | /// The UTI Type identifying WebP data in pasteboard. 39 | UIKIT_EXTERN NSString *const YYTextUTTypeWEBP; 40 | 41 | NS_ASSUME_NONNULL_END 42 | -------------------------------------------------------------------------------- /XYFaceKeyboardExample/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | APPL 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleVersion 20 | 1 21 | LSRequiresIPhoneOS 22 | 23 | UILaunchStoryboardName 24 | LaunchScreen 25 | UIMainStoryboardFile 26 | Main 27 | UIRequiredDeviceCapabilities 28 | 29 | armv7 30 | 31 | UISupportedInterfaceOrientations 32 | 33 | UIInterfaceOrientationPortrait 34 | UIInterfaceOrientationLandscapeLeft 35 | UIInterfaceOrientationLandscapeRight 36 | 37 | UISupportedInterfaceOrientations~ipad 38 | 39 | UIInterfaceOrientationPortrait 40 | UIInterfaceOrientationPortraitUpsideDown 41 | UIInterfaceOrientationLandscapeLeft 42 | UIInterfaceOrientationLandscapeRight 43 | 44 | 45 | 46 | -------------------------------------------------------------------------------- /Pods/YYText/YYText/YYText.h: -------------------------------------------------------------------------------- 1 | // 2 | // YYText.h 3 | // YYText 4 | // 5 | // Created by ibireme on 15/2/25. 6 | // Copyright (c) 2015 ibireme. 7 | // 8 | // This source code is licensed under the MIT-style license found in the 9 | // LICENSE file in the root directory of this source tree. 10 | // 11 | 12 | #import 13 | 14 | #if __has_include() 15 | FOUNDATION_EXPORT double YYTextVersionNumber; 16 | FOUNDATION_EXPORT const unsigned char YYTextVersionString[]; 17 | #import 18 | #import 19 | #import 20 | #import 21 | #import 22 | #import 23 | #import 24 | #import 25 | #import 26 | #import 27 | #import 28 | #import 29 | #import 30 | #import 31 | #import 32 | #import 33 | #else 34 | #import "YYLabel.h" 35 | #import "YYTextView.h" 36 | #import "YYTextAttribute.h" 37 | #import "YYTextArchiver.h" 38 | #import "YYTextParser.h" 39 | #import "YYTextRunDelegate.h" 40 | #import "YYTextRubyAnnotation.h" 41 | #import "YYTextLayout.h" 42 | #import "YYTextLine.h" 43 | #import "YYTextInput.h" 44 | #import "YYTextDebugOption.h" 45 | #import "YYTextKeyboardManager.h" 46 | #import "YYTextUtilities.h" 47 | #import "NSAttributedString+YYText.h" 48 | #import "NSParagraphStyle+YYText.h" 49 | #import "UIPasteboard+YYText.h" 50 | #endif 51 | -------------------------------------------------------------------------------- /Pods/SDWebImage/SDWebImage/SDWebImageCompat.m: -------------------------------------------------------------------------------- 1 | // 2 | // SDWebImageCompat.m 3 | // SDWebImage 4 | // 5 | // Created by Olivier Poitrey on 11/12/12. 6 | // Copyright (c) 2012 Dailymotion. All rights reserved. 7 | // 8 | 9 | #import "SDWebImageCompat.h" 10 | 11 | #if !__has_feature(objc_arc) 12 | #error SDWebImage is ARC only. Either turn on ARC for the project or use -fobjc-arc flag 13 | #endif 14 | 15 | inline UIImage *SDScaledImageForKey(NSString *key, UIImage *image) { 16 | if (!image) { 17 | return nil; 18 | } 19 | 20 | if ([image.images count] > 0) { 21 | NSMutableArray *scaledImages = [NSMutableArray array]; 22 | 23 | for (UIImage *tempImage in image.images) { 24 | [scaledImages addObject:SDScaledImageForKey(key, tempImage)]; 25 | } 26 | 27 | return [UIImage animatedImageWithImages:scaledImages duration:image.duration]; 28 | } 29 | else { 30 | if ([[UIScreen mainScreen] respondsToSelector:@selector(scale)]) { 31 | CGFloat scale = 1; 32 | if (key.length >= 8) { 33 | NSRange range = [key rangeOfString:@"@2x."]; 34 | if (range.location != NSNotFound) { 35 | scale = 2.0; 36 | } 37 | 38 | range = [key rangeOfString:@"@3x."]; 39 | if (range.location != NSNotFound) { 40 | scale = 3.0; 41 | } 42 | } 43 | 44 | UIImage *scaledImage = [[UIImage alloc] initWithCGImage:image.CGImage scale:scale orientation:image.imageOrientation]; 45 | image = scaledImage; 46 | } 47 | return image; 48 | } 49 | } 50 | 51 | NSString *const SDWebImageErrorDomain = @"SDWebImageErrorDomain"; 52 | -------------------------------------------------------------------------------- /XYFaceKeyboardExample/Base.lproj/Main.storyboard: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /XYFaceKeyboard/XYViews/XYPageControl.m: -------------------------------------------------------------------------------- 1 | // 2 | // XYPageControl.m 3 | // XYFaceKeyboardExample 4 | // 5 | // Created by XY Lv on 16/12/20. 6 | // Copyright © 2016年 吕欣宇. All rights reserved. 7 | // 8 | 9 | #import "XYPageControl.h" 10 | 11 | @implementation XYPageControl 12 | 13 | - (id)initWithFrame:(CGRect)frame{ 14 | self = [super initWithFrame:frame]; 15 | if(self){ 16 | 17 | } 18 | return self; 19 | } 20 | 21 | - (void)xy_updateDots{ 22 | for(int i=0;i< self.subviews.count;i++){ 23 | UIImageView * xyDot = [self.subviews objectAtIndex:i]; 24 | if(i==self.currentPage){ 25 | if([xyDot isKindOfClass:[UIImageView class]]){ 26 | xyDot.image = self.xy_selectedImg; 27 | xyDot.backgroundColor = [UIColor redColor]; 28 | 29 | }else{ 30 | xyDot.backgroundColor = [UIColor redColor]; 31 | } 32 | }else{ 33 | if([xyDot isKindOfClass:[UIImageView class]]){ 34 | xyDot.image = self.xy_selectedImg; 35 | xyDot.backgroundColor = [UIColor lightGrayColor]; 36 | 37 | }else{ 38 | xyDot.backgroundColor = [UIColor lightGrayColor]; 39 | } 40 | } 41 | } 42 | } 43 | 44 | - (void)setCurrentPage:(NSInteger)currentPage{ 45 | [super setCurrentPage:currentPage]; 46 | [self xy_updateDots]; 47 | } 48 | 49 | 50 | 51 | @end 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # XYFaceKeyboard 2 | 自定义动态表情键盘(简单,低耦合,可以更换动态表情) 3 | === 4 |
个人邮箱:892569921@qq.com [我的CSDN](http://blog.csdn.net/cry__boy):http://blog.csdn.net/cry__boy
5 |
QQ技术群:549943887
6 |
添加方法:cocoapods
7 |
pod 'XYFaceKeyboard'
8 |
效果
9 | ![image](https://github.com/cryboyofyu/XYFaceKeyboard/blob/master/XYFaceKeyboardExample/XYShowImage/XYFaceShow1.gif) 10 | ![image](https://github.com/cryboyofyu/XYFaceKeyboard/blob/master/XYFaceKeyboardExample/XYShowImage/XYFaceShow2.gif) 11 |
**1.可以自定义更换表情,更改plist文件即可**
12 |
**2.可以自定义表情类别title**
13 |
**3.可以输入框文字自动滚动**
14 |
**4.可以自定义placeholder,及背景样式**
15 |
1.方法
16 | ```objective-c 17 | _xyInputBox = [[XYInputBox alloc]initWithFrame:CGRectMake(0, CGRectGetHeight(self.view.frame) - xy_commentBoxH,xy_width, xy_commentBoxH) withBgView:self.view]; 18 | _xyInputBox.backgroundColor = xy_grayColor; 19 | _xyInputBox.xy_delegate = self; 20 | _xyInputBox.xy_placeholderLabel.text = @"~欣宇最帅~"; 21 | _xyInputBox.xy_placeholderLabel.textColor = xy_placeholderColor; 22 |    _xyInputBox.xy_faceKeyboard.xy_categoryNormalMArr = [NSMutableArray arrayWithArray:@[@"默认",@"欣宇",@"最帅",@"最帅"]]; 23 |    _xyInputBox.xy_faceKeyboard.xy_categorySelectedMArr = [NSMutableArray arrayWithArray:@[@"默认",@"github",@"点赞",@"酷毙"]]; 24 | [_xyInputBox xy_createInputBox]; 25 |    2.发送文本回调 26 |    代理方法 27 | - (void)xy_getMessage:(NSString *)message{ 28 | [_xyInputBox xy_keyboardResignFirstResponder]; 29 | _xyTextView.attributedText = [message xy_dealTheMessage]; 30 | NSLog(@"发出的消息:%@",message); 31 | ``` 32 | } 33 | 34 |
**欢迎大家提意见,一起交流学习,会根据大家的反馈及时更新。谢谢!别忘了给个星哦~**
35 |
**如果小弟的一点点薄力可以给大家带来便利,小弟三生有幸!会再接再厉!您的支持就是我的动力!**
36 |
**还有《高仿微信群组页面》《自定义九宫格》《高仿微博首页》《消息角标》,都非常不错哦,感兴趣的要关注哦!**
37 | -------------------------------------------------------------------------------- /XYFaceKeyboardExample/Base.lproj/LaunchScreen.storyboard: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /Pods/YYText/YYText/Component/YYTextEffectWindow.h: -------------------------------------------------------------------------------- 1 | // 2 | // YYTextEffectWindow.h 3 | // YYText 4 | // 5 | // Created by ibireme on 15/2/25. 6 | // Copyright (c) 2015 ibireme. 7 | // 8 | // This source code is licensed under the MIT-style license found in the 9 | // LICENSE file in the root directory of this source tree. 10 | // 11 | 12 | #import 13 | 14 | #if __has_include() 15 | #import 16 | #import 17 | #else 18 | #import "YYTextMagnifier.h" 19 | #import "YYTextSelectionView.h" 20 | #endif 21 | 22 | NS_ASSUME_NONNULL_BEGIN 23 | 24 | /** 25 | A window to display magnifier and extra contents for text view. 26 | 27 | @discussion Use `sharedWindow` to get the instance, don't create your own instance. 28 | Typically, you should not use this class directly. 29 | */ 30 | @interface YYTextEffectWindow : UIWindow 31 | 32 | /// Returns the shared instance (returns nil in App Extension). 33 | + (nullable instancetype)sharedWindow; 34 | 35 | /// Show the magnifier in this window with a 'popup' animation. @param mag A magnifier. 36 | - (void)showMagnifier:(YYTextMagnifier *)mag; 37 | /// Update the magnifier content and position. @param mag A magnifier. 38 | - (void)moveMagnifier:(YYTextMagnifier *)mag; 39 | /// Remove the magnifier from this window with a 'shrink' animation. @param mag A magnifier. 40 | - (void)hideMagnifier:(YYTextMagnifier *)mag; 41 | 42 | 43 | /// Show the selection dot in this window if the dot is clipped by the selection view. 44 | /// @param selection A selection view. 45 | - (void)showSelectionDot:(YYTextSelectionView *)selection; 46 | /// Remove the selection dot from this window. 47 | /// @param selection A selection view. 48 | - (void)hideSelectionDot:(YYTextSelectionView *)selection; 49 | 50 | @end 51 | 52 | NS_ASSUME_NONNULL_END 53 | -------------------------------------------------------------------------------- /Pods/YYText/YYText/String/YYTextRunDelegate.h: -------------------------------------------------------------------------------- 1 | // 2 | // YYTextRunDelegate.h 3 | // YYText 4 | // 5 | // Created by ibireme on 14/10/14. 6 | // Copyright (c) 2015 ibireme. 7 | // 8 | // This source code is licensed under the MIT-style license found in the 9 | // LICENSE file in the root directory of this source tree. 10 | // 11 | 12 | #import 13 | #import 14 | 15 | NS_ASSUME_NONNULL_BEGIN 16 | 17 | /** 18 | Wrapper for CTRunDelegateRef. 19 | 20 | Example: 21 | 22 | YYTextRunDelegate *delegate = [YYTextRunDelegate new]; 23 | delegate.ascent = 20; 24 | delegate.descent = 4; 25 | delegate.width = 20; 26 | CTRunDelegateRef ctRunDelegate = delegate.CTRunDelegate; 27 | if (ctRunDelegate) { 28 | /// add to attributed string 29 | CFRelease(ctRunDelegate); 30 | } 31 | 32 | */ 33 | @interface YYTextRunDelegate : NSObject 34 | 35 | /** 36 | Creates and returns the CTRunDelegate. 37 | 38 | @discussion You need call CFRelease() after used. 39 | The CTRunDelegateRef has a strong reference to this YYTextRunDelegate object. 40 | In CoreText, use CTRunDelegateGetRefCon() to get this YYTextRunDelegate object. 41 | 42 | @return The CTRunDelegate object. 43 | */ 44 | - (nullable CTRunDelegateRef)CTRunDelegate CF_RETURNS_RETAINED; 45 | 46 | /** 47 | Additional information about the the run delegate. 48 | */ 49 | @property (nullable, nonatomic, strong) NSDictionary *userInfo; 50 | 51 | /** 52 | The typographic ascent of glyphs in the run. 53 | */ 54 | @property (nonatomic) CGFloat ascent; 55 | 56 | /** 57 | The typographic descent of glyphs in the run. 58 | */ 59 | @property (nonatomic) CGFloat descent; 60 | 61 | /** 62 | The typographic width of glyphs in the run. 63 | */ 64 | @property (nonatomic) CGFloat width; 65 | 66 | @end 67 | 68 | NS_ASSUME_NONNULL_END 69 | -------------------------------------------------------------------------------- /Pods/YYText/YYText/Utility/YYTextWeakProxy.m: -------------------------------------------------------------------------------- 1 | // 2 | // YYTextWeakProxy.m 3 | // YYText 4 | // 5 | // Created by ibireme on 14/10/18. 6 | // Copyright (c) 2015 ibireme. 7 | // 8 | // This source code is licensed under the MIT-style license found in the 9 | // LICENSE file in the root directory of this source tree. 10 | // 11 | 12 | #import "YYTextWeakProxy.h" 13 | 14 | 15 | @implementation YYTextWeakProxy 16 | 17 | - (instancetype)initWithTarget:(id)target { 18 | _target = target; 19 | return self; 20 | } 21 | 22 | + (instancetype)proxyWithTarget:(id)target { 23 | return [[YYTextWeakProxy alloc] initWithTarget:target]; 24 | } 25 | 26 | - (id)forwardingTargetForSelector:(SEL)selector { 27 | return _target; 28 | } 29 | 30 | - (void)forwardInvocation:(NSInvocation *)invocation { 31 | void *null = NULL; 32 | [invocation setReturnValue:&null]; 33 | } 34 | 35 | - (NSMethodSignature *)methodSignatureForSelector:(SEL)selector { 36 | return [NSObject instanceMethodSignatureForSelector:@selector(init)]; 37 | } 38 | 39 | - (BOOL)respondsToSelector:(SEL)aSelector { 40 | return [_target respondsToSelector:aSelector]; 41 | } 42 | 43 | - (BOOL)isEqual:(id)object { 44 | return [_target isEqual:object]; 45 | } 46 | 47 | - (NSUInteger)hash { 48 | return [_target hash]; 49 | } 50 | 51 | - (Class)superclass { 52 | return [_target superclass]; 53 | } 54 | 55 | - (Class)class { 56 | return [_target class]; 57 | } 58 | 59 | - (BOOL)isKindOfClass:(Class)aClass { 60 | return [_target isKindOfClass:aClass]; 61 | } 62 | 63 | - (BOOL)isMemberOfClass:(Class)aClass { 64 | return [_target isMemberOfClass:aClass]; 65 | } 66 | 67 | - (BOOL)conformsToProtocol:(Protocol *)aProtocol { 68 | return [_target conformsToProtocol:aProtocol]; 69 | } 70 | 71 | - (BOOL)isProxy { 72 | return YES; 73 | } 74 | 75 | - (NSString *)description { 76 | return [_target description]; 77 | } 78 | 79 | - (NSString *)debugDescription { 80 | return [_target debugDescription]; 81 | } 82 | 83 | @end 84 | -------------------------------------------------------------------------------- /Pods/YYText/YYText/Component/YYTextContainerView.h: -------------------------------------------------------------------------------- 1 | // 2 | // YYTextContainerView.h 3 | // YYText 4 | // 5 | // Created by ibireme on 15/4/21. 6 | // Copyright (c) 2015 ibireme. 7 | // 8 | // This source code is licensed under the MIT-style license found in the 9 | // LICENSE file in the root directory of this source tree. 10 | // 11 | 12 | #import 13 | 14 | #if __has_include() 15 | #import 16 | #else 17 | #import "YYTextLayout.h" 18 | #endif 19 | 20 | NS_ASSUME_NONNULL_BEGIN 21 | 22 | /** 23 | A simple view to diaplay `YYTextLayout`. 24 | 25 | @discussion This view can become first responder. If this view is first responder, 26 | all the action (such as UIMenu's action) would forward to the `hostView` property. 27 | Typically, you should not use this class directly. 28 | 29 | @warning All the methods in this class should be called on main thread. 30 | */ 31 | @interface YYTextContainerView : UIView 32 | 33 | /// First responder's aciton will forward to this view. 34 | @property (nullable, nonatomic, weak) UIView *hostView; 35 | 36 | /// Debug option for layout debug. Set this property will let the view redraw it's contents. 37 | @property (nullable, nonatomic, copy) YYTextDebugOption *debugOption; 38 | 39 | /// Text vertical alignment. 40 | @property (nonatomic) YYTextVerticalAlignment textVerticalAlignment; 41 | 42 | /// Text layout. Set this property will let the view redraw it's contents. 43 | @property (nullable, nonatomic, strong) YYTextLayout *layout; 44 | 45 | /// The contents fade animation duration when the layout's contents changed. Default is 0 (no animation). 46 | @property (nonatomic) NSTimeInterval contentsFadeDuration; 47 | 48 | /// Convenience method to set `layout` and `contentsFadeDuration`. 49 | /// @param layout Same as `layout` property. 50 | /// @param fadeDuration Same as `contentsFadeDuration` property. 51 | - (void)setLayout:(nullable YYTextLayout *)layout withFadeDuration:(NSTimeInterval)fadeDuration; 52 | 53 | @end 54 | 55 | NS_ASSUME_NONNULL_END 56 | -------------------------------------------------------------------------------- /Pods/SDWebImage/SDWebImage/SDWebImageCompat.h: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of the SDWebImage package. 3 | * (c) Olivier Poitrey 4 | * (c) Jamie Pinkham 5 | * 6 | * For the full copyright and license information, please view the LICENSE 7 | * file that was distributed with this source code. 8 | */ 9 | 10 | #import 11 | 12 | #ifdef __OBJC_GC__ 13 | #error SDWebImage does not support Objective-C Garbage Collection 14 | #endif 15 | 16 | #if __IPHONE_OS_VERSION_MIN_REQUIRED != 20000 && __IPHONE_OS_VERSION_MIN_REQUIRED < __IPHONE_5_0 17 | #error SDWebImage doesn't support Deployment Target version < 5.0 18 | #endif 19 | 20 | #if !TARGET_OS_IPHONE 21 | #import 22 | #ifndef UIImage 23 | #define UIImage NSImage 24 | #endif 25 | #ifndef UIImageView 26 | #define UIImageView NSImageView 27 | #endif 28 | #else 29 | 30 | #import 31 | 32 | #endif 33 | 34 | #ifndef NS_ENUM 35 | #define NS_ENUM(_type, _name) enum _name : _type _name; enum _name : _type 36 | #endif 37 | 38 | #ifndef NS_OPTIONS 39 | #define NS_OPTIONS(_type, _name) enum _name : _type _name; enum _name : _type 40 | #endif 41 | 42 | #if OS_OBJECT_USE_OBJC 43 | #undef SDDispatchQueueRelease 44 | #undef SDDispatchQueueSetterSementics 45 | #define SDDispatchQueueRelease(q) 46 | #define SDDispatchQueueSetterSementics strong 47 | #else 48 | #undef SDDispatchQueueRelease 49 | #undef SDDispatchQueueSetterSementics 50 | #define SDDispatchQueueRelease(q) (dispatch_release(q)) 51 | #define SDDispatchQueueSetterSementics assign 52 | #endif 53 | 54 | extern UIImage *SDScaledImageForKey(NSString *key, UIImage *image); 55 | 56 | typedef void(^SDWebImageNoParamsBlock)(); 57 | 58 | extern NSString *const SDWebImageErrorDomain; 59 | 60 | #define dispatch_main_sync_safe(block)\ 61 | if ([NSThread isMainThread]) {\ 62 | block();\ 63 | } else {\ 64 | dispatch_sync(dispatch_get_main_queue(), block);\ 65 | } 66 | 67 | #define dispatch_main_async_safe(block)\ 68 | if ([NSThread isMainThread]) {\ 69 | block();\ 70 | } else {\ 71 | dispatch_async(dispatch_get_main_queue(), block);\ 72 | } 73 | -------------------------------------------------------------------------------- /Pods/SDWebImage/SDWebImage/UIView+WebCacheOperation.m: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of the SDWebImage package. 3 | * (c) Olivier Poitrey 4 | * 5 | * For the full copyright and license information, please view the LICENSE 6 | * file that was distributed with this source code. 7 | */ 8 | 9 | #import "UIView+WebCacheOperation.h" 10 | #import "objc/runtime.h" 11 | 12 | static char loadOperationKey; 13 | 14 | @implementation UIView (WebCacheOperation) 15 | 16 | - (NSMutableDictionary *)operationDictionary { 17 | NSMutableDictionary *operations = objc_getAssociatedObject(self, &loadOperationKey); 18 | if (operations) { 19 | return operations; 20 | } 21 | operations = [NSMutableDictionary dictionary]; 22 | objc_setAssociatedObject(self, &loadOperationKey, operations, OBJC_ASSOCIATION_RETAIN_NONATOMIC); 23 | return operations; 24 | } 25 | 26 | - (void)sd_setImageLoadOperation:(id)operation forKey:(NSString *)key { 27 | [self sd_cancelImageLoadOperationWithKey:key]; 28 | NSMutableDictionary *operationDictionary = [self operationDictionary]; 29 | [operationDictionary setObject:operation forKey:key]; 30 | } 31 | 32 | - (void)sd_cancelImageLoadOperationWithKey:(NSString *)key { 33 | // Cancel in progress downloader from queue 34 | NSMutableDictionary *operationDictionary = [self operationDictionary]; 35 | id operations = [operationDictionary objectForKey:key]; 36 | if (operations) { 37 | if ([operations isKindOfClass:[NSArray class]]) { 38 | for (id operation in operations) { 39 | if (operation) { 40 | [operation cancel]; 41 | } 42 | } 43 | } else if ([operations conformsToProtocol:@protocol(SDWebImageOperation)]){ 44 | [(id) operations cancel]; 45 | } 46 | [operationDictionary removeObjectForKey:key]; 47 | } 48 | } 49 | 50 | - (void)sd_removeImageLoadOperationWithKey:(NSString *)key { 51 | NSMutableDictionary *operationDictionary = [self operationDictionary]; 52 | [operationDictionary removeObjectForKey:key]; 53 | } 54 | 55 | @end 56 | -------------------------------------------------------------------------------- /Pods/YYText/YYText/Component/YYTextMagnifier.h: -------------------------------------------------------------------------------- 1 | // 2 | // YYTextMagnifier.h 3 | // YYText 4 | // 5 | // Created by ibireme on 15/2/25. 6 | // Copyright (c) 2015 ibireme. 7 | // 8 | // This source code is licensed under the MIT-style license found in the 9 | // LICENSE file in the root directory of this source tree. 10 | // 11 | 12 | #import 13 | 14 | #if __has_include() 15 | #import 16 | #else 17 | #import "YYTextAttribute.h" 18 | #endif 19 | 20 | NS_ASSUME_NONNULL_BEGIN 21 | 22 | /// Magnifier type 23 | typedef NS_ENUM(NSInteger, YYTextMagnifierType) { 24 | YYTextMagnifierTypeCaret, ///< Circular magnifier 25 | YYTextMagnifierTypeRanged, ///< Round rectangle magnifier 26 | }; 27 | 28 | /** 29 | A magnifier view which can be displayed in `YYTextEffectWindow`. 30 | 31 | @discussion Use `magnifierWithType:` to create instance. 32 | Typically, you should not use this class directly. 33 | */ 34 | @interface YYTextMagnifier : UIView 35 | 36 | /// Create a mangifier with the specified type. @param type The magnifier type. 37 | + (id)magnifierWithType:(YYTextMagnifierType)type; 38 | 39 | @property (nonatomic, readonly) YYTextMagnifierType type; ///< Type of magnifier 40 | @property (nonatomic, readonly) CGSize fitSize; ///< The 'best' size for magnifier view. 41 | @property (nonatomic, readonly) CGSize snapshotSize; ///< The 'best' snapshot image size for magnifier. 42 | @property (nullable, nonatomic, strong) UIImage *snapshot; ///< The image in magnifier (readwrite). 43 | 44 | @property (nullable, nonatomic, weak) UIView *hostView; ///< The coordinate based view. 45 | @property (nonatomic) CGPoint hostCaptureCenter; ///< The snapshot capture center in `hostView`. 46 | @property (nonatomic) CGPoint hostPopoverCenter; ///< The popover center in `hostView`. 47 | @property (nonatomic) BOOL hostVerticalForm; ///< The host view is vertical form. 48 | @property (nonatomic) BOOL captureDisabled; ///< A hint for `YYTextEffectWindow` to disable capture. 49 | @property (nonatomic) BOOL captureFadeAnimation; ///< Show fade animation when the snapshot image changed. 50 | @end 51 | 52 | NS_ASSUME_NONNULL_END 53 | -------------------------------------------------------------------------------- /XYFaceKeyboardExample/AppDelegate.m: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.m 3 | // XYFaceKeyboardExample 4 | // 5 | // Created by XY Lv on 16/12/20. 6 | // Copyright © 2016年 吕欣宇. All rights reserved. 7 | // 8 | 9 | #import "AppDelegate.h" 10 | 11 | @interface AppDelegate () 12 | 13 | @end 14 | 15 | @implementation AppDelegate 16 | 17 | 18 | - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { 19 | // Override point for customization after application launch. 20 | return YES; 21 | } 22 | 23 | 24 | - (void)applicationWillResignActive:(UIApplication *)application { 25 | // Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state. 26 | // Use this method to pause ongoing tasks, disable timers, and invalidate graphics rendering callbacks. Games should use this method to pause the game. 27 | } 28 | 29 | 30 | - (void)applicationDidEnterBackground:(UIApplication *)application { 31 | // Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later. 32 | // If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits. 33 | } 34 | 35 | 36 | - (void)applicationWillEnterForeground:(UIApplication *)application { 37 | // Called as part of the transition from the background to the active state; here you can undo many of the changes made on entering the background. 38 | } 39 | 40 | 41 | - (void)applicationDidBecomeActive:(UIApplication *)application { 42 | // Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface. 43 | } 44 | 45 | 46 | - (void)applicationWillTerminate:(UIApplication *)application { 47 | // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:. 48 | } 49 | 50 | 51 | @end 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | -------------------------------------------------------------------------------- /XYFaceKeyboardExample/ViewController.m: -------------------------------------------------------------------------------- 1 | // 2 | // ViewController.m 3 | // XYFaceKeyboardExample 4 | // 5 | // Created by XY Lv on 16/12/20. 6 | // Copyright © 2016年 吕欣宇. All rights reserved. 7 | // 8 | 9 | #import "ViewController.h" 10 | #import "XYInputBox.h" 11 | #import "XYKEYBOARDCONFIG.h" 12 | #import 13 | #import "UIButton+XYButton.h" 14 | @interface ViewController () 15 | { 16 | XYInputBox * _xyInputBox; 17 | YYTextView * _xyTextView; 18 | 19 | } 20 | @end 21 | 22 | @implementation ViewController 23 | 24 | - (void)viewDidLoad { 25 | [super viewDidLoad]; 26 | // Do any additional setup after loading the view, typically from a nib. 27 | [self xy_layoutTextView]; 28 | [self xy_layoutInputBox]; 29 | 30 | } 31 | 32 | - (void)xy_layoutInputBox{ 33 | 34 | _xyInputBox = [[XYInputBox alloc]initWithFrame:CGRectMake(0, CGRectGetHeight(self.view.frame) - xy_commentBoxH,xy_width, xy_commentBoxH) withBgView:self.view]; 35 | _xyInputBox.backgroundColor = xy_grayColor; 36 | _xyInputBox.xy_delegate = self; 37 | _xyInputBox.xy_placeholderLabel.text = @"~欣宇最帅~"; 38 | _xyInputBox.xy_placeholderLabel.textColor = xy_placeholderColor; 39 | _xyInputBox.xy_faceKeyboard.xy_categoryNormalMArr = [NSMutableArray arrayWithArray:@[@"默认",@"欣宇",@"最帅",@"最帅"]]; 40 | _xyInputBox.xy_faceKeyboard.xy_categorySelectedMArr = [NSMutableArray arrayWithArray:@[@"默认",@"github",@"点赞",@"酷毙"]]; 41 | [_xyInputBox xy_createInputBox]; 42 | 43 | } 44 | 45 | - (void)xy_layoutTextView{ 46 | _xyTextView = [[YYTextView alloc]initWithFrame:CGRectMake(10, 20, xy_width - 20, 150)]; 47 | _xyTextView.editable = NO; 48 | _xyTextView.backgroundColor = xy_grayColor; 49 | [self.view addSubview:_xyTextView]; 50 | 51 | } 52 | 53 | #pragma mark-xy -代理 54 | - (void)xy_getMessage:(NSString *)message{ 55 | [_xyInputBox xy_keyboardResignFirstResponder]; 56 | _xyTextView.attributedText = [message xy_dealTheMessage]; 57 | NSLog(@"发出的消息:%@",message); 58 | 59 | } 60 | 61 | - (void)didReceiveMemoryWarning { 62 | [super didReceiveMemoryWarning]; 63 | // Dispose of any resources that can be recreated. 64 | } 65 | 66 | 67 | @end 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | -------------------------------------------------------------------------------- /Pods/Pods.xcodeproj/xcuserdata/XY.xcuserdatad/xcschemes/YYText.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 15 | 21 | 22 | 23 | 24 | 25 | 30 | 31 | 32 | 33 | 43 | 44 | 45 | 46 | 52 | 53 | 55 | 56 | 59 | 60 | 61 | -------------------------------------------------------------------------------- /Pods/Pods.xcodeproj/xcuserdata/XY.xcuserdatad/xcschemes/YYImage.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 15 | 21 | 22 | 23 | 24 | 25 | 30 | 31 | 32 | 33 | 43 | 44 | 45 | 46 | 52 | 53 | 55 | 56 | 59 | 60 | 61 | -------------------------------------------------------------------------------- /Pods/Pods.xcodeproj/xcuserdata/XY.xcuserdatad/xcschemes/SDWebImage.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 15 | 21 | 22 | 23 | 24 | 25 | 30 | 31 | 32 | 33 | 43 | 44 | 45 | 46 | 52 | 53 | 55 | 56 | 59 | 60 | 61 | -------------------------------------------------------------------------------- /Pods/Pods.xcodeproj/xcuserdata/XY.xcuserdatad/xcschemes/Pods-XYFaceKeyboardExample.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 15 | 21 | 22 | 23 | 24 | 25 | 30 | 31 | 32 | 33 | 43 | 44 | 45 | 46 | 52 | 53 | 55 | 56 | 59 | 60 | 61 | -------------------------------------------------------------------------------- /Pods/YYText/YYText/String/YYTextRunDelegate.m: -------------------------------------------------------------------------------- 1 | // 2 | // YYTextRunDelegate.m 3 | // YYText 4 | // 5 | // Created by ibireme on 14/10/14. 6 | // Copyright (c) 2015 ibireme. 7 | // 8 | // This source code is licensed under the MIT-style license found in the 9 | // LICENSE file in the root directory of this source tree. 10 | // 11 | 12 | #import "YYTextRunDelegate.h" 13 | 14 | static void DeallocCallback(void *ref) { 15 | YYTextRunDelegate *self = (__bridge_transfer YYTextRunDelegate *)(ref); 16 | self = nil; // release 17 | } 18 | 19 | static CGFloat GetAscentCallback(void *ref) { 20 | YYTextRunDelegate *self = (__bridge YYTextRunDelegate *)(ref); 21 | return self.ascent; 22 | } 23 | 24 | static CGFloat GetDecentCallback(void *ref) { 25 | YYTextRunDelegate *self = (__bridge YYTextRunDelegate *)(ref); 26 | return self.descent; 27 | } 28 | 29 | static CGFloat GetWidthCallback(void *ref) { 30 | YYTextRunDelegate *self = (__bridge YYTextRunDelegate *)(ref); 31 | return self.width; 32 | } 33 | 34 | @implementation YYTextRunDelegate 35 | 36 | - (CTRunDelegateRef)CTRunDelegate CF_RETURNS_RETAINED { 37 | CTRunDelegateCallbacks callbacks; 38 | callbacks.version = kCTRunDelegateCurrentVersion; 39 | callbacks.dealloc = DeallocCallback; 40 | callbacks.getAscent = GetAscentCallback; 41 | callbacks.getDescent = GetDecentCallback; 42 | callbacks.getWidth = GetWidthCallback; 43 | return CTRunDelegateCreate(&callbacks, (__bridge_retained void *)(self.copy)); 44 | } 45 | 46 | - (void)encodeWithCoder:(NSCoder *)aCoder { 47 | [aCoder encodeObject:@(_ascent) forKey:@"ascent"]; 48 | [aCoder encodeObject:@(_descent) forKey:@"descent"]; 49 | [aCoder encodeObject:@(_width) forKey:@"width"]; 50 | [aCoder encodeObject:_userInfo forKey:@"userInfo"]; 51 | } 52 | 53 | - (id)initWithCoder:(NSCoder *)aDecoder { 54 | self = [super init]; 55 | _ascent = ((NSNumber *)[aDecoder decodeObjectForKey:@"ascent"]).floatValue; 56 | _descent = ((NSNumber *)[aDecoder decodeObjectForKey:@"descent"]).floatValue; 57 | _width = ((NSNumber *)[aDecoder decodeObjectForKey:@"width"]).floatValue; 58 | _userInfo = [aDecoder decodeObjectForKey:@"userInfo"]; 59 | return self; 60 | } 61 | 62 | - (id)copyWithZone:(NSZone *)zone { 63 | typeof(self) one = [self.class new]; 64 | one.ascent = self.ascent; 65 | one.descent = self.descent; 66 | one.width = self.width; 67 | one.userInfo = self.userInfo; 68 | return one; 69 | } 70 | 71 | @end 72 | -------------------------------------------------------------------------------- /XYFaceKeyboard/XYSource/XYFace2.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | x00.gif 6 | [xy飞行] 7 | x01.gif 8 | [xy诅咒] 9 | x02.gif 10 | [xy吓] 11 | x03.gif 12 | [xy怒] 13 | x04.gif 14 | [xy生气] 15 | x05.gif 16 | [xy吐] 17 | x06.gif 18 | [xy爱心] 19 | x07.gif 20 | [xy愤怒] 21 | x08.gif 22 | [xy倒霉] 23 | x09.gif 24 | [xy目瞪口呆] 25 | x10.gif 26 | [xy得瑟] 27 | x11.gif 28 | [xy旋转] 29 | x12.gif 30 | [xy汗] 31 | x13.gif 32 | [xy感动] 33 | x14.gif 34 | [xy拽] 35 | x15.gif 36 | [xyDuang] 37 | x16.gif 38 | [xy可怜] 39 | x17.gif 40 | [xy哦耶] 41 | x18.gif 42 | [xy委屈] 43 | x19.gif 44 | [xy拜拜] 45 | x20.gif 46 | [xy抓狂] 47 | x21.gif 48 | [xy发火] 49 | x22.gif 50 | [xy喜欢] 51 | x23.gif 52 | [xy石化] 53 | x24.gif 54 | [xygo] 55 | x25.gif 56 | [xy路过] 57 | x26.gif 58 | [xy惊吓] 59 | x27.gif 60 | [xy又发火] 61 | x28.gif 62 | [xy侠客] 63 | x29.gif 64 | [xy得意] 65 | x30.gif 66 | [xy又生气] 67 | x31.gif 68 | [xy飘过] 69 | x32.gif 70 | [xy撒娇] 71 | x33.gif 72 | [xy不好意思] 73 | x34.gif 74 | [xy痛] 75 | x35.gif 76 | [xy抠鼻] 77 | x36.gif 78 | [xy得瑟到不行] 79 | x37.gif 80 | [xy疑问] 81 | x38.gif 82 | [xy生病] 83 | x39.gif 84 | [xy无语] 85 | x40.gif 86 | [xy又路过] 87 | x41.gif 88 | [xy再次生气] 89 | x42.gif 90 | [xy兴奋] 91 | 92 | 93 | -------------------------------------------------------------------------------- /Pods/YYText/YYText/String/YYTextRubyAnnotation.h: -------------------------------------------------------------------------------- 1 | // 2 | // YYTextRubyAnnotation.h 3 | // YYText 4 | // 5 | // Created by ibireme on 15/4/24. 6 | // Copyright (c) 2015 ibireme. 7 | // 8 | // This source code is licensed under the MIT-style license found in the 9 | // LICENSE file in the root directory of this source tree. 10 | // 11 | 12 | #import 13 | #import 14 | 15 | NS_ASSUME_NONNULL_BEGIN 16 | 17 | /** 18 | Wrapper for CTRubyAnnotationRef. 19 | 20 | Example: 21 | 22 | YYTextRubyAnnotation *ruby = [YYTextRubyAnnotation new]; 23 | ruby.textBefore = @"zhù yīn"; 24 | CTRubyAnnotationRef ctRuby = ruby.CTRubyAnnotation; 25 | if (ctRuby) { 26 | /// add to attributed string 27 | CFRelease(ctRuby); 28 | } 29 | 30 | */ 31 | @interface YYTextRubyAnnotation : NSObject 32 | 33 | /// Specifies how the ruby text and the base text should be aligned relative to each other. 34 | @property (nonatomic) CTRubyAlignment alignment; 35 | 36 | /// Specifies how the ruby text can overhang adjacent characters. 37 | @property (nonatomic) CTRubyOverhang overhang; 38 | 39 | /// Specifies the size of the annotation text as a percent of the size of the base text. 40 | @property (nonatomic) CGFloat sizeFactor; 41 | 42 | 43 | /// The ruby text is positioned before the base text; 44 | /// i.e. above horizontal text and to the right of vertical text. 45 | @property (nullable, nonatomic, copy) NSString *textBefore; 46 | 47 | /// The ruby text is positioned after the base text; 48 | /// i.e. below horizontal text and to the left of vertical text. 49 | @property (nullable, nonatomic, copy) NSString *textAfter; 50 | 51 | /// The ruby text is positioned to the right of the base text whether it is horizontal or vertical. 52 | /// This is the way that Bopomofo annotations are attached to Chinese text in Taiwan. 53 | @property (nullable, nonatomic, copy) NSString *textInterCharacter; 54 | 55 | /// The ruby text follows the base text with no special styling. 56 | @property (nullable, nonatomic, copy) NSString *textInline; 57 | 58 | 59 | /** 60 | Create a ruby object from CTRuby object. 61 | 62 | @param ctRuby A CTRuby object. 63 | 64 | @return A ruby object, or nil when an error occurs. 65 | */ 66 | + (instancetype)rubyWithCTRubyRef:(CTRubyAnnotationRef)ctRuby NS_AVAILABLE_IOS(8_0); 67 | 68 | /** 69 | Create a CTRuby object from the instance. 70 | 71 | @return A new CTRuby object, or NULL when an error occurs. 72 | The returned value should be release after used. 73 | */ 74 | - (nullable CTRubyAnnotationRef)CTRubyAnnotation CF_RETURNS_RETAINED NS_AVAILABLE_IOS(8_0); 75 | 76 | @end 77 | 78 | NS_ASSUME_NONNULL_END 79 | -------------------------------------------------------------------------------- /Pods/YYText/YYText/Utility/YYTextAsyncLayer.h: -------------------------------------------------------------------------------- 1 | // 2 | // YYTextAsyncLayer.h 3 | // YYText 4 | // 5 | // Created by ibireme on 15/4/11. 6 | // Copyright (c) 2015 ibireme. 7 | // 8 | // This source code is licensed under the MIT-style license found in the 9 | // LICENSE file in the root directory of this source tree. 10 | // 11 | 12 | #import 13 | #import 14 | 15 | @class YYTextAsyncLayerDisplayTask; 16 | 17 | NS_ASSUME_NONNULL_BEGIN 18 | 19 | /** 20 | The YYTextAsyncLayer class is a subclass of CALayer used for render contents asynchronously. 21 | 22 | @discussion When the layer need update it's contents, it will ask the delegate 23 | for a async display task to render the contents in a background queue. 24 | */ 25 | @interface YYTextAsyncLayer : CALayer 26 | /// Whether the render code is executed in background. Default is YES. 27 | @property BOOL displaysAsynchronously; 28 | @end 29 | 30 | 31 | /** 32 | The YYTextAsyncLayer's delegate protocol. The delegate of the YYTextAsyncLayer (typically a UIView) 33 | must implements the method in this protocol. 34 | */ 35 | @protocol YYTextAsyncLayerDelegate 36 | @required 37 | /// This method is called to return a new display task when the layer's contents need update. 38 | - (YYTextAsyncLayerDisplayTask *)newAsyncDisplayTask; 39 | @end 40 | 41 | 42 | /** 43 | A display task used by YYTextAsyncLayer to render the contents in background queue. 44 | */ 45 | @interface YYTextAsyncLayerDisplayTask : NSObject 46 | 47 | /** 48 | This block will be called before the asynchronous drawing begins. 49 | It will be called on the main thread. 50 | 51 | @param layer The layer. 52 | */ 53 | @property (nullable, nonatomic, copy) void (^willDisplay)(CALayer *layer); 54 | 55 | /** 56 | This block is called to draw the layer's contents. 57 | 58 | @discussion This block may be called on main thread or background thread, 59 | so is should be thread-safe. 60 | 61 | @param context A new bitmap content created by layer. 62 | @param size The content size (typically same as layer's bound size). 63 | @param isCancelled If this block returns `YES`, the method should cancel the 64 | drawing process and return as quickly as possible. 65 | */ 66 | @property (nullable, nonatomic, copy) void (^display)(CGContextRef context, CGSize size, BOOL(^isCancelled)(void)); 67 | 68 | /** 69 | This block will be called after the asynchronous drawing finished. 70 | It will be called on the main thread. 71 | 72 | @param layer The layer. 73 | @param finished If the draw process is cancelled, it's `NO`, otherwise it's `YES`; 74 | */ 75 | @property (nullable, nonatomic, copy) void (^didDisplay)(CALayer *layer, BOOL finished); 76 | 77 | @end 78 | 79 | NS_ASSUME_NONNULL_END 80 | -------------------------------------------------------------------------------- /Pods/YYText/YYText/Utility/YYTextTransaction.m: -------------------------------------------------------------------------------- 1 | // 2 | // YYTextTransaction.m 3 | // YYText 4 | // 5 | // Created by ibireme on 15/4/18. 6 | // Copyright (c) 2015 ibireme. 7 | // 8 | // This source code is licensed under the MIT-style license found in the 9 | // LICENSE file in the root directory of this source tree. 10 | // 11 | 12 | #import "YYTextTransaction.h" 13 | 14 | 15 | @interface YYTextTransaction() 16 | @property (nonatomic, strong) id target; 17 | @property (nonatomic, assign) SEL selector; 18 | @end 19 | 20 | static NSMutableSet *transactionSet = nil; 21 | 22 | static void YYRunLoopObserverCallBack(CFRunLoopObserverRef observer, CFRunLoopActivity activity, void *info) { 23 | if (transactionSet.count == 0) return; 24 | NSSet *currentSet = transactionSet; 25 | transactionSet = [NSMutableSet new]; 26 | [currentSet enumerateObjectsUsingBlock:^(YYTextTransaction *transaction, BOOL *stop) { 27 | #pragma clang diagnostic push 28 | #pragma clang diagnostic ignored "-Warc-performSelector-leaks" 29 | [transaction.target performSelector:transaction.selector]; 30 | #pragma clang diagnostic pop 31 | }]; 32 | } 33 | 34 | static void YYTextTransactionSetup() { 35 | static dispatch_once_t onceToken; 36 | dispatch_once(&onceToken, ^{ 37 | transactionSet = [NSMutableSet new]; 38 | CFRunLoopRef runloop = CFRunLoopGetMain(); 39 | CFRunLoopObserverRef observer; 40 | 41 | observer = CFRunLoopObserverCreate(CFAllocatorGetDefault(), 42 | kCFRunLoopBeforeWaiting | kCFRunLoopExit, 43 | true, // repeat 44 | 0xFFFFFF, // after CATransaction(2000000) 45 | YYRunLoopObserverCallBack, NULL); 46 | CFRunLoopAddObserver(runloop, observer, kCFRunLoopCommonModes); 47 | CFRelease(observer); 48 | }); 49 | } 50 | 51 | 52 | @implementation YYTextTransaction 53 | 54 | + (YYTextTransaction *)transactionWithTarget:(id)target selector:(SEL)selector{ 55 | if (!target || !selector) return nil; 56 | YYTextTransaction *t = [YYTextTransaction new]; 57 | t.target = target; 58 | t.selector = selector; 59 | return t; 60 | } 61 | 62 | - (void)commit { 63 | if (!_target || !_selector) return; 64 | YYTextTransactionSetup(); 65 | [transactionSet addObject:self]; 66 | } 67 | 68 | - (NSUInteger)hash { 69 | long v1 = (long)((void *)_selector); 70 | long v2 = (long)_target; 71 | return v1 ^ v2; 72 | } 73 | 74 | - (BOOL)isEqual:(id)object { 75 | if (self == object) return YES; 76 | if (![object isMemberOfClass:self.class]) return NO; 77 | YYTextTransaction *other = object; 78 | return other.selector == _selector && other.target == _target; 79 | } 80 | 81 | @end 82 | -------------------------------------------------------------------------------- /Pods/YYText/YYText/Component/YYTextSelectionView.h: -------------------------------------------------------------------------------- 1 | // 2 | // YYTextSelectionView.h 3 | // YYText 4 | // 5 | // Created by ibireme on 15/2/25. 6 | // Copyright (c) 2015 ibireme. 7 | // 8 | // This source code is licensed under the MIT-style license found in the 9 | // LICENSE file in the root directory of this source tree. 10 | // 11 | 12 | #import 13 | 14 | #if __has_include() 15 | #import 16 | #import 17 | #else 18 | #import "YYTextAttribute.h" 19 | #import "YYTextInput.h" 20 | #endif 21 | 22 | NS_ASSUME_NONNULL_BEGIN 23 | 24 | /** 25 | A single dot view. The frame should be foursquare. 26 | Change the background color for display. 27 | 28 | @discussion Typically, you should not use this class directly. 29 | */ 30 | @interface YYSelectionGrabberDot : UIView 31 | /// Dont't access this property. It was used by `YYTextEffectWindow`. 32 | @property (nonatomic, strong) UIView *mirror; 33 | @end 34 | 35 | 36 | /** 37 | A grabber (stick with a dot). 38 | 39 | @discussion Typically, you should not use this class directly. 40 | */ 41 | @interface YYSelectionGrabber : UIView 42 | 43 | @property (nonatomic, readonly) YYSelectionGrabberDot *dot; ///< the dot view 44 | @property (nonatomic) YYTextDirection dotDirection; ///< don't support composite direction 45 | @property (nullable, nonatomic, strong) UIColor *color; ///< tint color, default is nil 46 | 47 | @end 48 | 49 | 50 | /** 51 | The selection view for text edit and select. 52 | 53 | @discussion Typically, you should not use this class directly. 54 | */ 55 | @interface YYTextSelectionView : UIView 56 | 57 | @property (nullable, nonatomic, weak) UIView *hostView; ///< the holder view 58 | @property (nullable, nonatomic, strong) UIColor *color; ///< the tint color 59 | @property (nonatomic, getter = isCaretBlinks) BOOL caretBlinks; ///< whether the caret is blinks 60 | @property (nonatomic, getter = isCaretVisible) BOOL caretVisible; ///< whether the caret is visible 61 | @property (nonatomic, getter = isVerticalForm) BOOL verticalForm; ///< weather the text view is vertical form 62 | 63 | @property (nonatomic) CGRect caretRect; ///< caret rect (width==0 or height==0) 64 | @property (nullable, nonatomic, copy) NSArray *selectionRects; ///< default is nil 65 | 66 | @property (nonatomic, readonly) UIView *caretView; 67 | @property (nonatomic, readonly) YYSelectionGrabber *startGrabber; 68 | @property (nonatomic, readonly) YYSelectionGrabber *endGrabber; 69 | 70 | - (BOOL)isGrabberContainsPoint:(CGPoint)point; 71 | - (BOOL)isStartGrabberContainsPoint:(CGPoint)point; 72 | - (BOOL)isEndGrabberContainsPoint:(CGPoint)point; 73 | - (BOOL)isCaretContainsPoint:(CGPoint)point; 74 | - (BOOL)isSelectionRectsContainsPoint:(CGPoint)point; 75 | 76 | @end 77 | 78 | NS_ASSUME_NONNULL_END 79 | -------------------------------------------------------------------------------- /Pods/YYImage/YYImage/YYSpriteSheetImage.m: -------------------------------------------------------------------------------- 1 | // 2 | // YYSpriteImage.m 3 | // YYImage 4 | // 5 | // Created by ibireme on 15/4/21. 6 | // Copyright (c) 2015 ibireme. 7 | // 8 | // This source code is licensed under the MIT-style license found in the 9 | // LICENSE file in the root directory of this source tree. 10 | // 11 | 12 | #import "YYSpriteSheetImage.h" 13 | 14 | @implementation YYSpriteSheetImage 15 | 16 | - (instancetype)initWithSpriteSheetImage:(UIImage *)image 17 | contentRects:(NSArray *)contentRects 18 | frameDurations:(NSArray *)frameDurations 19 | loopCount:(NSUInteger)loopCount { 20 | if (!image.CGImage) return nil; 21 | if (contentRects.count < 1 || frameDurations.count < 1) return nil; 22 | if (contentRects.count != frameDurations.count) return nil; 23 | 24 | self = [super initWithCGImage:image.CGImage scale:image.scale orientation:image.imageOrientation]; 25 | if (!self) return nil; 26 | 27 | _contentRects = contentRects.copy; 28 | _frameDurations = frameDurations.copy; 29 | _loopCount = loopCount; 30 | return self; 31 | } 32 | 33 | - (CGRect)contentsRectForCALayerAtIndex:(NSUInteger)index { 34 | CGRect layerRect = CGRectMake(0, 0, 1, 1); 35 | if (index >= _contentRects.count) return layerRect; 36 | 37 | CGSize imageSize = self.size; 38 | CGRect rect = [self animatedImageContentsRectAtIndex:index]; 39 | if (imageSize.width > 0.01 && imageSize.height > 0.01) { 40 | layerRect.origin.x = rect.origin.x / imageSize.width; 41 | layerRect.origin.y = rect.origin.y / imageSize.height; 42 | layerRect.size.width = rect.size.width / imageSize.width; 43 | layerRect.size.height = rect.size.height / imageSize.height; 44 | layerRect = CGRectIntersection(layerRect, CGRectMake(0, 0, 1, 1)); 45 | if (CGRectIsNull(layerRect) || CGRectIsEmpty(layerRect)) { 46 | layerRect = CGRectMake(0, 0, 1, 1); 47 | } 48 | } 49 | return layerRect; 50 | } 51 | 52 | #pragma mark @protocol YYAnimatedImage 53 | 54 | - (NSUInteger)animatedImageFrameCount { 55 | return _contentRects.count; 56 | } 57 | 58 | - (NSUInteger)animatedImageLoopCount { 59 | return _loopCount; 60 | } 61 | 62 | - (NSUInteger)animatedImageBytesPerFrame { 63 | return 0; 64 | } 65 | 66 | - (UIImage *)animatedImageFrameAtIndex:(NSUInteger)index { 67 | return self; 68 | } 69 | 70 | - (NSTimeInterval)animatedImageDurationAtIndex:(NSUInteger)index { 71 | if (index >= _frameDurations.count) return 0; 72 | return ((NSNumber *)_frameDurations[index]).doubleValue; 73 | } 74 | 75 | - (CGRect)animatedImageContentsRectAtIndex:(NSUInteger)index { 76 | if (index >= _contentRects.count) return CGRectZero; 77 | return ((NSValue *)_contentRects[index]).CGRectValue; 78 | } 79 | 80 | @end 81 | -------------------------------------------------------------------------------- /Pods/YYText/YYText/Utility/UIView+YYText.h: -------------------------------------------------------------------------------- 1 | // 2 | // UIView+YYText.h 3 | // YYText 4 | // 5 | // Created by ibireme on 13/4/3. 6 | // Copyright (c) 2015 ibireme. 7 | // 8 | // This source code is licensed under the MIT-style license found in the 9 | // LICENSE file in the root directory of this source tree. 10 | // 11 | 12 | #import 13 | 14 | NS_ASSUME_NONNULL_BEGIN 15 | 16 | /** 17 | Provides extensions for `UIView`. 18 | */ 19 | @interface UIView (YYText) 20 | 21 | /** 22 | Returns the view's view controller (may be nil). 23 | */ 24 | @property (nullable, nonatomic, readonly) UIViewController *yy_viewController; 25 | 26 | /** 27 | Returns the visible alpha on screen, taking into account superview and window. 28 | */ 29 | @property (nonatomic, readonly) CGFloat yy_visibleAlpha; 30 | 31 | /** 32 | Converts a point from the receiver's coordinate system to that of the specified view or window. 33 | 34 | @param point A point specified in the local coordinate system (bounds) of the receiver. 35 | @param view The view or window into whose coordinate system point is to be converted. 36 | If view is nil, this method instead converts to window base coordinates. 37 | @return The point converted to the coordinate system of view. 38 | */ 39 | - (CGPoint)yy_convertPoint:(CGPoint)point toViewOrWindow:(UIView *)view; 40 | 41 | /** 42 | Converts a point from the coordinate system of a given view or window to that of the receiver. 43 | 44 | @param point A point specified in the local coordinate system (bounds) of view. 45 | @param view The view or window with point in its coordinate system. 46 | If view is nil, this method instead converts from window base coordinates. 47 | @return The point converted to the local coordinate system (bounds) of the receiver. 48 | */ 49 | - (CGPoint)yy_convertPoint:(CGPoint)point fromViewOrWindow:(UIView *)view; 50 | 51 | /** 52 | Converts a rectangle from the receiver's coordinate system to that of another view or window. 53 | 54 | @param rect A rectangle specified in the local coordinate system (bounds) of the receiver. 55 | @param view The view or window that is the target of the conversion operation. If view is nil, this method instead converts to window base coordinates. 56 | @return The converted rectangle. 57 | */ 58 | - (CGRect)yy_convertRect:(CGRect)rect toViewOrWindow:(UIView *)view; 59 | 60 | /** 61 | Converts a rectangle from the coordinate system of another view or window to that of the receiver. 62 | 63 | @param rect A rectangle specified in the local coordinate system (bounds) of view. 64 | @param view The view or window with rect in its coordinate system. 65 | If view is nil, this method instead converts from window base coordinates. 66 | @return The converted rectangle. 67 | */ 68 | - (CGRect)yy_convertRect:(CGRect)rect fromViewOrWindow:(UIView *)view; 69 | 70 | @end 71 | 72 | NS_ASSUME_NONNULL_END 73 | -------------------------------------------------------------------------------- /Pods/YYText/YYText/Component/YYTextInput.h: -------------------------------------------------------------------------------- 1 | // 2 | // YYTextInput.h 3 | // YYText 4 | // 5 | // Created by ibireme on 15/4/17. 6 | // Copyright (c) 2015 ibireme. 7 | // 8 | // This source code is licensed under the MIT-style license found in the 9 | // LICENSE file in the root directory of this source tree. 10 | // 11 | 12 | #import 13 | 14 | NS_ASSUME_NONNULL_BEGIN 15 | 16 | /** 17 | Text position affinity. For example, the offset appears after the last 18 | character on a line is backward affinity, before the first character on 19 | the following line is forward affinity. 20 | */ 21 | typedef NS_ENUM(NSInteger, YYTextAffinity) { 22 | YYTextAffinityForward = 0, ///< offset appears before the character 23 | YYTextAffinityBackward = 1, ///< offset appears after the character 24 | }; 25 | 26 | 27 | /** 28 | A YYTextPosition object represents a position in a text container; in other words, 29 | it is an index into the backing string in a text-displaying view. 30 | 31 | YYTextPosition has the same API as Apple's implementation in UITextView/UITextField, 32 | so you can alse use it to interact with UITextView/UITextField. 33 | */ 34 | @interface YYTextPosition : UITextPosition 35 | 36 | @property (nonatomic, readonly) NSInteger offset; 37 | @property (nonatomic, readonly) YYTextAffinity affinity; 38 | 39 | + (instancetype)positionWithOffset:(NSInteger)offset; 40 | + (instancetype)positionWithOffset:(NSInteger)offset affinity:(YYTextAffinity) affinity; 41 | 42 | - (NSComparisonResult)compare:(id)otherPosition; 43 | 44 | @end 45 | 46 | 47 | /** 48 | A YYTextRange object represents a range of characters in a text container; in other words, 49 | it identifies a starting index and an ending index in string backing a text-displaying view. 50 | 51 | YYTextRange has the same API as Apple's implementation in UITextView/UITextField, 52 | so you can alse use it to interact with UITextView/UITextField. 53 | */ 54 | @interface YYTextRange : UITextRange 55 | 56 | @property (nonatomic, readonly) YYTextPosition *start; 57 | @property (nonatomic, readonly) YYTextPosition *end; 58 | @property (nonatomic, readonly, getter=isEmpty) BOOL empty; 59 | 60 | + (instancetype)rangeWithRange:(NSRange)range; 61 | + (instancetype)rangeWithRange:(NSRange)range affinity:(YYTextAffinity) affinity; 62 | + (instancetype)rangeWithStart:(YYTextPosition *)start end:(YYTextPosition *)end; 63 | + (instancetype)defaultRange; ///< <{0,0} Forward> 64 | 65 | - (NSRange)asRange; 66 | 67 | @end 68 | 69 | 70 | /** 71 | A YYTextSelectionRect object encapsulates information about a selected range of 72 | text in a text-displaying view. 73 | 74 | YYTextSelectionRect has the same API as Apple's implementation in UITextView/UITextField, 75 | so you can alse use it to interact with UITextView/UITextField. 76 | */ 77 | @interface YYTextSelectionRect : UITextSelectionRect 78 | 79 | @property (nonatomic, readwrite) CGRect rect; 80 | @property (nonatomic, readwrite) UITextWritingDirection writingDirection; 81 | @property (nonatomic, readwrite) BOOL containsStart; 82 | @property (nonatomic, readwrite) BOOL containsEnd; 83 | @property (nonatomic, readwrite) BOOL isVertical; 84 | 85 | @end 86 | 87 | NS_ASSUME_NONNULL_END 88 | -------------------------------------------------------------------------------- /XYFaceKeyboard/XYSource/XYFace3.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | pb0.gif 6 | [xy哟西] 7 | pb1.gif 8 | [xy捏脸] 9 | pb2.gif 10 | [xy委屈] 11 | pb3.gif 12 | [xy伤心] 13 | pb4.gif 14 | [xy喵呜] 15 | pb5.gif 16 | [xy娇羞] 17 | pb6.gif 18 | [xy开枪] 19 | pb7.gif 20 | [xy哇哦] 21 | pb8.gif 22 | [xy无语] 23 | pb9.gif 24 | [xy鄙视] 25 | pb10.gif 26 | [xy难吃] 27 | pb11.gif 28 | [xy亲亲] 29 | pb12.gif 30 | [xy流口水] 31 | pb13.gif 32 | [xy巨汗] 33 | pb14.gif 34 | [xy开心] 35 | pb15.gif 36 | [xy吐] 37 | pb16.gif 38 | [xy飘过] 39 | pb17.gif 40 | [xy吃饭] 41 | pb18.gif 42 | [xy打死你] 43 | pb19.gif 44 | [xy路过] 45 | pb20.gif 46 | [xy烧香] 47 | pb21.gif 48 | [xy吓] 49 | pb22.gif 50 | [xy好喜欢] 51 | pb23.gif 52 | [xy弹] 53 | pb24.gif 54 | [xy拜拜] 55 | pb25.gif 56 | [xy晕] 57 | pb26.gif 58 | [xy咻] 59 | pb27.gif 60 | [xy舔屏] 61 | pb28.gif 62 | [xy瞌睡] 63 | pb29.gif 64 | [xy潜水] 65 | pb30.gif 66 | [xy害怕] 67 | pb31.gif 68 | [xy闭嘴] 69 | pb32.gif 70 | [xy囧] 71 | pb33.gif 72 | [xy哇咔咔] 73 | pb34.gif 74 | [xy么么哒] 75 | pb35.gif 76 | [xy别过来] 77 | pb36.gif 78 | [xy切] 79 | pb37.gif 80 | [xy悠闲] 81 | pb38.gif 82 | [xy哼] 83 | pb39.gif 84 | [xy津津有味] 85 | pb40.gif 86 | [xy鼓掌] 87 | pb41.gif 88 | [xy自残] 89 | pb42.gif 90 | [xy呸] 91 | pb43.gif 92 | [xy血腥] 93 | pb44.gif 94 | [xy抠鼻] 95 | pb45.gif 96 | [xy佩服] 97 | pb46.gif 98 | [xy大哭] 99 | pb47.gif 100 | [xy吃我一拳] 101 | pb48.gif 102 | [xy噢呵呵] 103 | pb49.gif 104 | [xy流鼻血] 105 | pb50.gif 106 | [xy吸血鬼] 107 | pb51.gif 108 | [中毒] 109 | pb52.gif 110 | [爆头] 111 | pb53.gif 112 | [僵尸] 113 | 114 | 115 | -------------------------------------------------------------------------------- /Pods/YYImage/YYImage/YYImage.h: -------------------------------------------------------------------------------- 1 | // 2 | // YYImage.h 3 | // YYImage 4 | // 5 | // Created by ibireme on 14/10/20. 6 | // Copyright (c) 2015 ibireme. 7 | // 8 | // This source code is licensed under the MIT-style license found in the 9 | // LICENSE file in the root directory of this source tree. 10 | // 11 | 12 | #import 13 | 14 | #if __has_include() 15 | FOUNDATION_EXPORT double YYImageVersionNumber; 16 | FOUNDATION_EXPORT const unsigned char YYImageVersionString[]; 17 | #import 18 | #import 19 | #import 20 | #import 21 | #elif __has_include() 22 | #import 23 | #import 24 | #import 25 | #import 26 | #else 27 | #import "YYFrameImage.h" 28 | #import "YYSpriteSheetImage.h" 29 | #import "YYImageCoder.h" 30 | #import "YYAnimatedImageView.h" 31 | #endif 32 | 33 | NS_ASSUME_NONNULL_BEGIN 34 | 35 | 36 | /** 37 | A YYImage object is a high-level way to display animated image data. 38 | 39 | @discussion It is a fully compatible `UIImage` subclass. It extends the UIImage 40 | to support animated WebP, APNG and GIF format image data decoding. It also 41 | support NSCoding protocol to archive and unarchive multi-frame image data. 42 | 43 | If the image is created from multi-frame image data, and you want to play the 44 | animation, try replace UIImageView with `YYAnimatedImageView`. 45 | 46 | Sample Code: 47 | 48 | // animation@3x.webp 49 | YYImage *image = [YYImage imageNamed:@"animation.webp"]; 50 | YYAnimatedImageView *imageView = [YYAnimatedImageView alloc] initWithImage:image]; 51 | [view addSubView:imageView]; 52 | 53 | */ 54 | @interface YYImage : UIImage 55 | 56 | + (nullable YYImage *)imageNamed:(NSString *)name; // no cache! 57 | + (nullable YYImage *)imageWithContentsOfFile:(NSString *)path; 58 | + (nullable YYImage *)imageWithData:(NSData *)data; 59 | + (nullable YYImage *)imageWithData:(NSData *)data scale:(CGFloat)scale; 60 | 61 | /** 62 | If the image is created from data or file, then the value indicates the data type. 63 | */ 64 | @property (nonatomic, readonly) YYImageType animatedImageType; 65 | 66 | /** 67 | If the image is created from animated image data (multi-frame GIF/APNG/WebP), 68 | this property stores the original image data. 69 | */ 70 | @property (nullable, nonatomic, readonly) NSData *animatedImageData; 71 | 72 | /** 73 | The total memory usage (in bytes) if all frame images was loaded into memory. 74 | The value is 0 if the image is not created from a multi-frame image data. 75 | */ 76 | @property (nonatomic, readonly) NSUInteger animatedImageMemorySize; 77 | 78 | /** 79 | Preload all frame image to memory. 80 | 81 | @discussion Set this property to `YES` will block the calling thread to decode 82 | all animation frame image to memory, set to `NO` will release the preloaded frames. 83 | If the image is shared by lots of image views (such as emoticon), preload all 84 | frames will reduce the CPU cost. 85 | 86 | See `animatedImageMemorySize` for memory cost. 87 | */ 88 | @property (nonatomic) BOOL preloadAllAnimatedImageFrames; 89 | 90 | @end 91 | 92 | NS_ASSUME_NONNULL_END 93 | -------------------------------------------------------------------------------- /Pods/YYText/YYText/String/YYTextParser.h: -------------------------------------------------------------------------------- 1 | // 2 | // YYTextParser.h 3 | // YYText 4 | // 5 | // Created by ibireme on 15/3/6. 6 | // Copyright (c) 2015 ibireme. 7 | // 8 | // This source code is licensed under the MIT-style license found in the 9 | // LICENSE file in the root directory of this source tree. 10 | // 11 | 12 | #import 13 | 14 | NS_ASSUME_NONNULL_BEGIN 15 | 16 | /** 17 | The YYTextParser protocol declares the required method for YYTextView and YYLabel 18 | to modify the text during editing. 19 | 20 | You can implement this protocol to add code highlighting or emoticon replacement for 21 | YYTextView and YYLabel. See `YYTextSimpleMarkdownParser` and `YYTextSimpleEmoticonParser` for example. 22 | */ 23 | @protocol YYTextParser 24 | @required 25 | /** 26 | When text is changed in YYTextView or YYLabel, this method will be called. 27 | 28 | @param text The original attributed string. This method may parse the text and 29 | change the text attributes or content. 30 | 31 | @param selectedRange Current selected range in `text`. 32 | This method should correct the range if the text content is changed. If there's 33 | no selected range (such as YYLabel), this value is NULL. 34 | 35 | @return If the 'text' is modified in this method, returns `YES`, otherwise returns `NO`. 36 | */ 37 | - (BOOL)parseText:(nullable NSMutableAttributedString *)text selectedRange:(nullable NSRangePointer)selectedRange; 38 | @end 39 | 40 | 41 | 42 | /** 43 | A simple markdown parser. 44 | 45 | It'a very simple markdown parser, you can use this parser to highlight some 46 | small piece of markdown text. 47 | 48 | This markdown parser use regular expression to parse text, slow and weak. 49 | If you want to write a better parser, try these projests: 50 | https://github.com/NimbusKit/markdown 51 | https://github.com/dreamwieber/AttributedMarkdown 52 | https://github.com/indragiek/CocoaMarkdown 53 | 54 | Or you can use lex/yacc to generate your custom parser. 55 | */ 56 | @interface YYTextSimpleMarkdownParser : NSObject 57 | @property (nonatomic) CGFloat fontSize; ///< default is 14 58 | @property (nonatomic) CGFloat headerFontSize; ///< default is 20 59 | 60 | @property (nullable, nonatomic, strong) UIColor *textColor; 61 | @property (nullable, nonatomic, strong) UIColor *controlTextColor; 62 | @property (nullable, nonatomic, strong) UIColor *headerTextColor; 63 | @property (nullable, nonatomic, strong) UIColor *inlineTextColor; 64 | @property (nullable, nonatomic, strong) UIColor *codeTextColor; 65 | @property (nullable, nonatomic, strong) UIColor *linkTextColor; 66 | 67 | - (void)setColorWithBrightTheme; ///< reset the color properties to pre-defined value. 68 | - (void)setColorWithDarkTheme; ///< reset the color properties to pre-defined value. 69 | @end 70 | 71 | 72 | 73 | /** 74 | A simple emoticon parser. 75 | 76 | Use this parser to map some specified piece of string to image emoticon. 77 | Example: "Hello :smile:" -> "Hello 😀" 78 | 79 | It can also be used to extend the "unicode emoticon". 80 | */ 81 | @interface YYTextSimpleEmoticonParser : NSObject 82 | 83 | /** 84 | The custom emoticon mapper. 85 | The key is a specified plain string, such as @":smile:". 86 | The value is a UIImage which will replace the specified plain string in text. 87 | */ 88 | @property (nullable, copy) NSDictionary *emoticonMapper; 89 | @end 90 | 91 | NS_ASSUME_NONNULL_END 92 | -------------------------------------------------------------------------------- /Pods/YYText/YYText/Component/YYTextKeyboardManager.h: -------------------------------------------------------------------------------- 1 | // 2 | // YYTextKeyboardManager.h 3 | // YYText 4 | // 5 | // Created by ibireme on 15/6/3. 6 | // Copyright (c) 2015 ibireme. 7 | // 8 | // This source code is licensed under the MIT-style license found in the 9 | // LICENSE file in the root directory of this source tree. 10 | // 11 | 12 | #import 13 | 14 | NS_ASSUME_NONNULL_BEGIN 15 | 16 | /** 17 | System keyboard transition information. 18 | Use -[YYTextKeyboardManager convertRect:toView:] to convert frame to specified view. 19 | */ 20 | typedef struct { 21 | BOOL fromVisible; ///< Keyboard visible before transition. 22 | BOOL toVisible; ///< Keyboard visible after transition. 23 | CGRect fromFrame; ///< Keyboard frame before transition. 24 | CGRect toFrame; ///< Keyboard frame after transition. 25 | NSTimeInterval animationDuration; ///< Keyboard transition animation duration. 26 | UIViewAnimationCurve animationCurve; ///< Keyboard transition animation curve. 27 | UIViewAnimationOptions animationOption; ///< Keybaord transition animation option. 28 | } YYTextKeyboardTransition; 29 | 30 | 31 | /** 32 | The YYTextKeyboardObserver protocol defines the method you can use 33 | to receive system keyboard change information. 34 | */ 35 | @protocol YYTextKeyboardObserver 36 | @optional 37 | - (void)keyboardChangedWithTransition:(YYTextKeyboardTransition)transition; 38 | @end 39 | 40 | 41 | /** 42 | A YYTextKeyboardManager object lets you get the system keyboard information, 43 | and track the keyboard visible/frame/transition. 44 | 45 | @discussion You should access this class in main thread. 46 | Compatible: iPhone/iPad with iOS6/7/8/9. 47 | */ 48 | @interface YYTextKeyboardManager : NSObject 49 | 50 | - (instancetype)init UNAVAILABLE_ATTRIBUTE; 51 | + (instancetype)new UNAVAILABLE_ATTRIBUTE; 52 | 53 | /// Get the default manager (returns nil in App Extension). 54 | + (nullable instancetype)defaultManager; 55 | 56 | /// Get the keyboard window. nil if there's no keyboard window. 57 | @property (nullable, nonatomic, readonly) UIWindow *keyboardWindow; 58 | 59 | /// Get the keyboard view. nil if there's no keyboard view. 60 | @property (nullable, nonatomic, readonly) UIView *keyboardView; 61 | 62 | /// Whether the keyboard is visible. 63 | @property (nonatomic, readonly, getter=isKeyboardVisible) BOOL keyboardVisible; 64 | 65 | /// Get the keyboard frame. CGRectNull if there's no keyboard view. 66 | /// Use convertRect:toView: to convert frame to specified view. 67 | @property (nonatomic, readonly) CGRect keyboardFrame; 68 | 69 | 70 | /** 71 | Add an observer to manager to get keyboard change information. 72 | This method makes a weak reference to the observer. 73 | 74 | @param observer An observer. 75 | This method will do nothing if the observer is nil, or already added. 76 | */ 77 | - (void)addObserver:(id)observer; 78 | 79 | /** 80 | Remove an observer from manager. 81 | 82 | @param observer An observer. 83 | This method will do nothing if the observer is nil, or not in manager. 84 | */ 85 | - (void)removeObserver:(id)observer; 86 | 87 | /** 88 | Convert rect to specified view or window. 89 | 90 | @param rect The frame rect. 91 | @param view A specified view or window (pass nil to convert for main window). 92 | @return The converted rect in specifeid view. 93 | */ 94 | - (CGRect)convertRect:(CGRect)rect toView:(nullable UIView *)view; 95 | 96 | @end 97 | 98 | NS_ASSUME_NONNULL_END 99 | -------------------------------------------------------------------------------- /XYFaceKeyboard/XYSource/XYFace0.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | geili_thumb.gif 6 | [xy给力] 7 | wg_thumb.gif 8 | [xy围观] 9 | vw_thumb.gif 10 | [xy威武] 11 | smilea_thumb.gif 12 | [xy呵呵] 13 | tootha_thumb.gif 14 | [xy嘻嘻] 15 | laugh.gif 16 | [xy哈哈] 17 | tza_thumb.gif 18 | [xy可爱] 19 | kl_thumb.gif 20 | [xy可怜] 21 | kbsa_thumb.gif 22 | [xy挖鼻屎] 23 | cj_thumb.gif 24 | [xy吃惊] 25 | shamea_thumb.gif 26 | [xy害羞] 27 | zy_thumb.gif 28 | [xy挤眼] 29 | bz_thumb.gif 30 | [xy闭嘴] 31 | bs2_thumb.gif 32 | [xy鄙视] 33 | lovea_thumb.gif 34 | [xy爱你] 35 | sada_thumb.gif 36 | [xy泪] 37 | heia_thumb.gif 38 | [xy偷笑] 39 | qq_thumb.gif 40 | [xy亲亲] 41 | sb_thumb.gif 42 | [xy生病] 43 | mb_thumb.gif 44 | [xy太开心] 45 | ldln_thumb.gif 46 | [xy懒得理你] 47 | yhh_thumb.gif 48 | [xy右哼哼] 49 | zhh_thumb.gif 50 | [xy左哼哼] 51 | x_thumb.gif 52 | [xy嘘] 53 | cry.gif 54 | [xy衰] 55 | wq_thumb.gif 56 | [xy委屈] 57 | t_thumb.gif 58 | [xy吐] 59 | k_thumb.gif 60 | [xy打哈欠] 61 | bba_thumb.gif 62 | [xy抱抱] 63 | angrya_thumb.gif 64 | [xy怒] 65 | yw_thumb.gif 66 | [xy疑问] 67 | cza_thumb.gif 68 | [xy馋嘴] 69 | bb_thumb.gif 70 | [xy拜拜] 71 | sk_thumb.gif 72 | [xy思考] 73 | sweata_thumb.gif 74 | [xy汗] 75 | sleepya_thumb.gif 76 | [xy困] 77 | sleepa_thumb.gif 78 | [xy睡觉] 79 | money_thumb.gif 80 | [xy钱] 81 | sw_thumb.gif 82 | [xy失望] 83 | cool_thumb.gif 84 | [xy酷] 85 | hsa_thumb.gif 86 | [xy花心] 87 | hatea_thumb.gif 88 | [xy哼] 89 | gza_thumb.gif 90 | [xy鼓掌] 91 | dizzya_thumb.gif 92 | [xy晕] 93 | bs_thumb.gif 94 | [xy悲伤] 95 | crazya_thumb.gif 96 | [xy抓狂] 97 | h_thumb.gif 98 | [xy黑线] 99 | yx_thumb.gif 100 | [xy阴险] 101 | ws_thumb.gif 102 | [xy握手] 103 | hearta_thumb.gif 104 | [xy心] 105 | unheart.gif 106 | [xy伤心] 107 | ok_thumb.gif 108 | [xyok] 109 | ye_thumb.gif 110 | [xy耶] 111 | good_thumb.gif 112 | [xygood] 113 | 114 | 115 | -------------------------------------------------------------------------------- /Pods/YYText/YYText/Component/YYTextLine.h: -------------------------------------------------------------------------------- 1 | // 2 | // YYTextLine.h 3 | // YYText 4 | // 5 | // Created by ibireme on 15/3/10. 6 | // Copyright (c) 2015 ibireme. 7 | // 8 | // This source code is licensed under the MIT-style license found in the 9 | // LICENSE file in the root directory of this source tree. 10 | // 11 | 12 | #import 13 | #import 14 | 15 | #if __has_include() 16 | #import 17 | #else 18 | #import "YYTextAttribute.h" 19 | #endif 20 | 21 | @class YYTextRunGlyphRange; 22 | 23 | NS_ASSUME_NONNULL_BEGIN 24 | 25 | /** 26 | A text line object wrapped `CTLineRef`, see `YYTextLayout` for more. 27 | */ 28 | @interface YYTextLine : NSObject 29 | 30 | + (instancetype)lineWithCTLine:(CTLineRef)CTLine position:(CGPoint)position vertical:(BOOL)isVertical; 31 | 32 | @property (nonatomic) NSUInteger index; ///< line index 33 | @property (nonatomic) NSUInteger row; ///< line row 34 | @property (nullable, nonatomic, strong) NSArray *> *verticalRotateRange; ///< Run rotate range 35 | 36 | @property (nonatomic, readonly) CTLineRef CTLine; ///< CoreText line 37 | @property (nonatomic, readonly) NSRange range; ///< string range 38 | @property (nonatomic, readonly) BOOL vertical; ///< vertical form 39 | 40 | @property (nonatomic, readonly) CGRect bounds; ///< bounds (ascent + descent) 41 | @property (nonatomic, readonly) CGSize size; ///< bounds.size 42 | @property (nonatomic, readonly) CGFloat width; ///< bounds.size.width 43 | @property (nonatomic, readonly) CGFloat height; ///< bounds.size.height 44 | @property (nonatomic, readonly) CGFloat top; ///< bounds.origin.y 45 | @property (nonatomic, readonly) CGFloat bottom; ///< bounds.origin.y + bounds.size.height 46 | @property (nonatomic, readonly) CGFloat left; ///< bounds.origin.x 47 | @property (nonatomic, readonly) CGFloat right; ///< bounds.origin.x + bounds.size.width 48 | 49 | @property (nonatomic) CGPoint position; ///< baseline position 50 | @property (nonatomic, readonly) CGFloat ascent; ///< line ascent 51 | @property (nonatomic, readonly) CGFloat descent; ///< line descent 52 | @property (nonatomic, readonly) CGFloat leading; ///< line leading 53 | @property (nonatomic, readonly) CGFloat lineWidth; ///< line width 54 | @property (nonatomic, readonly) CGFloat trailingWhitespaceWidth; 55 | 56 | @property (nullable, nonatomic, readonly) NSArray *attachments; ///< YYTextAttachment 57 | @property (nullable, nonatomic, readonly) NSArray *attachmentRanges; ///< NSRange(NSValue) 58 | @property (nullable, nonatomic, readonly) NSArray *attachmentRects; ///< CGRect(NSValue) 59 | 60 | @end 61 | 62 | 63 | typedef NS_ENUM(NSUInteger, YYTextRunGlyphDrawMode) { 64 | /// No rotate. 65 | YYTextRunGlyphDrawModeHorizontal = 0, 66 | 67 | /// Rotate vertical for single glyph. 68 | YYTextRunGlyphDrawModeVerticalRotate = 1, 69 | 70 | /// Rotate vertical for single glyph, and move the glyph to a better position, 71 | /// such as fullwidth punctuation. 72 | YYTextRunGlyphDrawModeVerticalRotateMove = 2, 73 | }; 74 | 75 | /** 76 | A range in CTRun, used for vertical form. 77 | */ 78 | @interface YYTextRunGlyphRange : NSObject 79 | @property (nonatomic) NSRange glyphRangeInRun; 80 | @property (nonatomic) YYTextRunGlyphDrawMode drawMode; 81 | + (instancetype)rangeWithRange:(NSRange)range drawMode:(YYTextRunGlyphDrawMode)mode; 82 | @end 83 | 84 | NS_ASSUME_NONNULL_END 85 | -------------------------------------------------------------------------------- /Pods/YYText/YYText/Component/YYTextDebugOption.h: -------------------------------------------------------------------------------- 1 | // 2 | // YYTextDebugOption.h 3 | // YYText 4 | // 5 | // Created by ibireme on 15/4/8. 6 | // Copyright (c) 2015 ibireme. 7 | // 8 | // This source code is licensed under the MIT-style license found in the 9 | // LICENSE file in the root directory of this source tree. 10 | // 11 | 12 | #import 13 | 14 | @class YYTextDebugOption; 15 | 16 | NS_ASSUME_NONNULL_BEGIN 17 | 18 | /** 19 | The YYTextDebugTarget protocol defines the method a debug target should implement. 20 | A debug target can be add to the global container to receive the shared debug 21 | option changed notification. 22 | */ 23 | @protocol YYTextDebugTarget 24 | 25 | @required 26 | /** 27 | When the shared debug option changed, this method would be called on main thread. 28 | It should return as quickly as possible. The option's property should not be changed 29 | in this method. 30 | 31 | @param option The shared debug option. 32 | */ 33 | - (void)setDebugOption:(nullable YYTextDebugOption *)option; 34 | @end 35 | 36 | 37 | 38 | /** 39 | The debug option for YYText. 40 | */ 41 | @interface YYTextDebugOption : NSObject 42 | @property (nullable, nonatomic, strong) UIColor *baselineColor; ///< baseline color 43 | @property (nullable, nonatomic, strong) UIColor *CTFrameBorderColor; ///< CTFrame path border color 44 | @property (nullable, nonatomic, strong) UIColor *CTFrameFillColor; ///< CTFrame path fill color 45 | @property (nullable, nonatomic, strong) UIColor *CTLineBorderColor; ///< CTLine bounds border color 46 | @property (nullable, nonatomic, strong) UIColor *CTLineFillColor; ///< CTLine bounds fill color 47 | @property (nullable, nonatomic, strong) UIColor *CTLineNumberColor; ///< CTLine line number color 48 | @property (nullable, nonatomic, strong) UIColor *CTRunBorderColor; ///< CTRun bounds border color 49 | @property (nullable, nonatomic, strong) UIColor *CTRunFillColor; ///< CTRun bounds fill color 50 | @property (nullable, nonatomic, strong) UIColor *CTRunNumberColor; ///< CTRun number color 51 | @property (nullable, nonatomic, strong) UIColor *CGGlyphBorderColor; ///< CGGlyph bounds border color 52 | @property (nullable, nonatomic, strong) UIColor *CGGlyphFillColor; ///< CGGlyph bounds fill color 53 | 54 | - (BOOL)needDrawDebug; ///< `YES`: at least one debug color is visible. `NO`: all debug color is invisible/nil. 55 | - (void)clear; ///< Set all debug color to nil. 56 | 57 | /** 58 | Add a debug target. 59 | 60 | @discussion When `setSharedDebugOption:` is called, all added debug target will 61 | receive `setDebugOption:` in main thread. It maintains an unsafe_unretained 62 | reference to this target. The target must to removed before dealloc. 63 | 64 | @param target A debug target. 65 | */ 66 | + (void)addDebugTarget:(id)target; 67 | 68 | /** 69 | Remove a debug target which is added by `addDebugTarget:`. 70 | 71 | @param target A debug target. 72 | */ 73 | + (void)removeDebugTarget:(id)target; 74 | 75 | /** 76 | Returns the shared debug option. 77 | 78 | @return The shared debug option, default is nil. 79 | */ 80 | + (nullable YYTextDebugOption *)sharedDebugOption; 81 | 82 | /** 83 | Set a debug option as shared debug option. 84 | This method must be called on main thread. 85 | 86 | @discussion When call this method, the new option will set to all debug target 87 | which is added by `addDebugTarget:`. 88 | 89 | @param option A new debug option (nil is valid). 90 | */ 91 | + (void)setSharedDebugOption:(nullable YYTextDebugOption *)option; 92 | 93 | @end 94 | 95 | NS_ASSUME_NONNULL_END 96 | -------------------------------------------------------------------------------- /Pods/YYText/YYText/String/YYTextRubyAnnotation.m: -------------------------------------------------------------------------------- 1 | // 2 | // YYTextRubyAnnotation.m 3 | // YYText 4 | // 5 | // Created by ibireme on 15/4/24. 6 | // Copyright (c) 2015 ibireme. 7 | // 8 | // This source code is licensed under the MIT-style license found in the 9 | // LICENSE file in the root directory of this source tree. 10 | // 11 | 12 | #import "YYTextRubyAnnotation.h" 13 | 14 | @implementation YYTextRubyAnnotation 15 | 16 | - (instancetype)init { 17 | self = super.init; 18 | self.alignment = kCTRubyAlignmentAuto; 19 | self.overhang = kCTRubyOverhangAuto; 20 | self.sizeFactor = 0.5; 21 | return self; 22 | } 23 | 24 | + (instancetype)rubyWithCTRubyRef:(CTRubyAnnotationRef)ctRuby { 25 | if (!ctRuby) return nil; 26 | YYTextRubyAnnotation *one = [self new]; 27 | one.alignment = CTRubyAnnotationGetAlignment(ctRuby); 28 | one.overhang = CTRubyAnnotationGetOverhang(ctRuby); 29 | one.sizeFactor = CTRubyAnnotationGetSizeFactor(ctRuby); 30 | one.textBefore = (__bridge NSString *)(CTRubyAnnotationGetTextForPosition(ctRuby, kCTRubyPositionBefore)); 31 | one.textAfter = (__bridge NSString *)(CTRubyAnnotationGetTextForPosition(ctRuby, kCTRubyPositionAfter)); 32 | one.textInterCharacter = (__bridge NSString *)(CTRubyAnnotationGetTextForPosition(ctRuby, kCTRubyPositionInterCharacter)); 33 | one.textInline = (__bridge NSString *)(CTRubyAnnotationGetTextForPosition(ctRuby, kCTRubyPositionInline)); 34 | return one; 35 | } 36 | 37 | - (CTRubyAnnotationRef)CTRubyAnnotation CF_RETURNS_RETAINED { 38 | if (((long)CTRubyAnnotationCreate + 1) == 1) return NULL; // system not support 39 | 40 | CFStringRef text[kCTRubyPositionCount]; 41 | text[kCTRubyPositionBefore] = (__bridge CFStringRef)(_textBefore); 42 | text[kCTRubyPositionAfter] = (__bridge CFStringRef)(_textAfter); 43 | text[kCTRubyPositionInterCharacter] = (__bridge CFStringRef)(_textInterCharacter); 44 | text[kCTRubyPositionInline] = (__bridge CFStringRef)(_textInline); 45 | CTRubyAnnotationRef ruby = CTRubyAnnotationCreate(_alignment, _overhang, _sizeFactor, text); 46 | return ruby; 47 | } 48 | 49 | - (id)copyWithZone:(NSZone *)zone { 50 | YYTextRubyAnnotation *one = [self.class new]; 51 | one.alignment = _alignment; 52 | one.overhang = _overhang; 53 | one.sizeFactor = _sizeFactor; 54 | one.textBefore = _textBefore; 55 | one.textAfter = _textAfter; 56 | one.textInterCharacter = _textInterCharacter; 57 | one.textInline = _textInline; 58 | return one; 59 | } 60 | 61 | - (void)encodeWithCoder:(NSCoder *)aCoder { 62 | [aCoder encodeObject:@(_alignment) forKey:@"alignment"]; 63 | [aCoder encodeObject:@(_overhang) forKey:@"overhang"]; 64 | [aCoder encodeObject:@(_sizeFactor) forKey:@"sizeFactor"]; 65 | [aCoder encodeObject:_textBefore forKey:@"textBefore"]; 66 | [aCoder encodeObject:_textAfter forKey:@"textAfter"]; 67 | [aCoder encodeObject:_textInterCharacter forKey:@"textInterCharacter"]; 68 | [aCoder encodeObject:_textInline forKey:@"textInline"]; 69 | } 70 | 71 | - (id)initWithCoder:(NSCoder *)aDecoder { 72 | self = [self init]; 73 | _alignment = ((NSNumber *)[aDecoder decodeObjectForKey:@"alignment"]).intValue; 74 | _overhang = ((NSNumber *)[aDecoder decodeObjectForKey:@"overhang"]).intValue; 75 | _sizeFactor = ((NSNumber *)[aDecoder decodeObjectForKey:@"sizeFactor"]).intValue; 76 | _textBefore = [aDecoder decodeObjectForKey:@"textBefore"]; 77 | _textAfter = [aDecoder decodeObjectForKey:@"textAfter"]; 78 | _textInterCharacter = [aDecoder decodeObjectForKey:@"textInterCharacter"]; 79 | _textInline = [aDecoder decodeObjectForKey:@"textInline"]; 80 | return self; 81 | } 82 | 83 | @end 84 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-XYFaceKeyboardExample/Pods-XYFaceKeyboardExample-acknowledgements.markdown: -------------------------------------------------------------------------------- 1 | # Acknowledgements 2 | This application makes use of the following third party libraries: 3 | 4 | ## SDWebImage 5 | 6 | Copyright (c) 2016 Olivier Poitrey rs@dailymotion.com 7 | 8 | Permission is hereby granted, free of charge, to any person obtaining a copy 9 | of this software and associated documentation files (the "Software"), to deal 10 | in the Software without restriction, including without limitation the rights 11 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 12 | copies of the Software, and to permit persons to whom the Software is furnished 13 | to do so, subject to the following conditions: 14 | 15 | The above copyright notice and this permission notice shall be included in all 16 | copies or substantial portions of the Software. 17 | 18 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 19 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 20 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 21 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 22 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 23 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 24 | THE SOFTWARE. 25 | 26 | 27 | 28 | ## YYImage 29 | 30 | The MIT License (MIT) 31 | 32 | Copyright (c) 2015 ibireme 33 | 34 | Permission is hereby granted, free of charge, to any person obtaining a copy 35 | of this software and associated documentation files (the "Software"), to deal 36 | in the Software without restriction, including without limitation the rights 37 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 38 | copies of the Software, and to permit persons to whom the Software is 39 | furnished to do so, subject to the following conditions: 40 | 41 | The above copyright notice and this permission notice shall be included in all 42 | copies or substantial portions of the Software. 43 | 44 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 45 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 46 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 47 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 48 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 49 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 50 | SOFTWARE. 51 | 52 | 53 | 54 | ## YYText 55 | 56 | The MIT License (MIT) 57 | 58 | Copyright (c) 2015 ibireme 59 | 60 | Permission is hereby granted, free of charge, to any person obtaining a copy 61 | of this software and associated documentation files (the "Software"), to deal 62 | in the Software without restriction, including without limitation the rights 63 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 64 | copies of the Software, and to permit persons to whom the Software is 65 | furnished to do so, subject to the following conditions: 66 | 67 | The above copyright notice and this permission notice shall be included in all 68 | copies or substantial portions of the Software. 69 | 70 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 71 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 72 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 73 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 74 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 75 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 76 | SOFTWARE. 77 | 78 | 79 | Generated by CocoaPods - https://cocoapods.org 80 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-XYFaceKeyboardExample/Pods-XYFaceKeyboardExample-frameworks.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | set -e 3 | 4 | echo "mkdir -p ${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" 5 | mkdir -p "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" 6 | 7 | SWIFT_STDLIB_PATH="${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" 8 | 9 | install_framework() 10 | { 11 | if [ -r "${BUILT_PRODUCTS_DIR}/$1" ]; then 12 | local source="${BUILT_PRODUCTS_DIR}/$1" 13 | elif [ -r "${BUILT_PRODUCTS_DIR}/$(basename "$1")" ]; then 14 | local source="${BUILT_PRODUCTS_DIR}/$(basename "$1")" 15 | elif [ -r "$1" ]; then 16 | local source="$1" 17 | fi 18 | 19 | local destination="${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" 20 | 21 | if [ -L "${source}" ]; then 22 | echo "Symlinked..." 23 | source="$(readlink "${source}")" 24 | fi 25 | 26 | # use filter instead of exclude so missing patterns dont' throw errors 27 | echo "rsync -av --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${destination}\"" 28 | rsync -av --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${destination}" 29 | 30 | local basename 31 | basename="$(basename -s .framework "$1")" 32 | binary="${destination}/${basename}.framework/${basename}" 33 | if ! [ -r "$binary" ]; then 34 | binary="${destination}/${basename}" 35 | fi 36 | 37 | # Strip invalid architectures so "fat" simulator / device frameworks work on device 38 | if [[ "$(file "$binary")" == *"dynamically linked shared library"* ]]; then 39 | strip_invalid_archs "$binary" 40 | fi 41 | 42 | # Resign the code if required by the build settings to avoid unstable apps 43 | code_sign_if_enabled "${destination}/$(basename "$1")" 44 | 45 | # Embed linked Swift runtime libraries. No longer necessary as of Xcode 7. 46 | if [ "${XCODE_VERSION_MAJOR}" -lt 7 ]; then 47 | local swift_runtime_libs 48 | swift_runtime_libs=$(xcrun otool -LX "$binary" | grep --color=never @rpath/libswift | sed -E s/@rpath\\/\(.+dylib\).*/\\1/g | uniq -u && exit ${PIPESTATUS[0]}) 49 | for lib in $swift_runtime_libs; do 50 | echo "rsync -auv \"${SWIFT_STDLIB_PATH}/${lib}\" \"${destination}\"" 51 | rsync -auv "${SWIFT_STDLIB_PATH}/${lib}" "${destination}" 52 | code_sign_if_enabled "${destination}/${lib}" 53 | done 54 | fi 55 | } 56 | 57 | # Signs a framework with the provided identity 58 | code_sign_if_enabled() { 59 | if [ -n "${EXPANDED_CODE_SIGN_IDENTITY}" -a "${CODE_SIGNING_REQUIRED}" != "NO" -a "${CODE_SIGNING_ALLOWED}" != "NO" ]; then 60 | # Use the current code_sign_identitiy 61 | echo "Code Signing $1 with Identity ${EXPANDED_CODE_SIGN_IDENTITY_NAME}" 62 | local code_sign_cmd="/usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} ${OTHER_CODE_SIGN_FLAGS} --preserve-metadata=identifier,entitlements "$1"" 63 | 64 | if [ "${COCOAPODS_PARALLEL_CODE_SIGN}" == "true" ]; then 65 | code_sign_cmd="$code_sign_cmd &" 66 | fi 67 | echo "$code_sign_cmd" 68 | eval "$code_sign_cmd" 69 | fi 70 | } 71 | 72 | # Strip invalid architectures 73 | strip_invalid_archs() { 74 | binary="$1" 75 | # Get architectures for current file 76 | archs="$(lipo -info "$binary" | rev | cut -d ':' -f1 | rev)" 77 | stripped="" 78 | for arch in $archs; do 79 | if ! [[ "${VALID_ARCHS}" == *"$arch"* ]]; then 80 | # Strip non-valid architectures in-place 81 | lipo -remove "$arch" -output "$binary" "$binary" || exit 1 82 | stripped="$stripped $arch" 83 | fi 84 | done 85 | if [[ "$stripped" ]]; then 86 | echo "Stripped $binary of architectures:$stripped" 87 | fi 88 | } 89 | 90 | if [ "${COCOAPODS_PARALLEL_CODE_SIGN}" == "true" ]; then 91 | wait 92 | fi 93 | --------------------------------------------------------------------------------