दिलचस्प पोस्ट
एट्रिब्यूट्स के लिए सीएसएस चयनकर्ता केस असंवेदनशील Php के साथ एक फाइल खोलना एंड्रॉइड ब्राउज़र में एक लिंक मेरे ऐप को शुरू करें? "अपरिवर्तनीय प्रकार: int () <str ()" एवीएक्स सीपीयू निर्देशों का प्रयोग करना: "/ आर्क: एवीएक्स" के बिना खराब प्रदर्शन मैं सीएसएस में पृष्ठभूमि छवियों को कैसे प्रिंट करूं? नेविगेशन नियंत्रक स्टैक, सबव्यूज़ या मोडल कंट्रोलर का उपयोग किए बिना दृश्य नियंत्रकों के परिवर्तन का एनीमेट करें? NHibernate के साथ पेजिंग कैसे कर सकते हैं? Kinect उपयोगकर्ता खोज WCF विंडोज प्रमाणीकरण को समझना दो दशमलव स्थानों SQL सर्वर के साथ एक संख्या लिखें प्रेषण के बाद – जीसीडी स्विफ्ट में? एंड्रॉइड पर दो तरह प्रमाणन SSL सॉकेट के लिए क्लाइंट / सर्वर प्रमाणपत्र का उपयोग करना ऑब्जेक्ट के प्रकार का सरणी क्यों "ऑब्जेक्ट" लौटाता है और "ऐरे" नहीं? सामान्य विधि के लिए GetMethod

आईओएस 7 टेक्स्टकिट – छवि के साथ इनलाइन को कैसे सम्मिलित करें?

मैं UITextView का उपयोग करके निम्न प्रभाव प्राप्त करने का प्रयास कर रहा हूं:

यहां छवि विवरण दर्ज करें

असल में मैं पाठ के बीच एक छवि सम्मिलित करना चाहता हूं। छवि बस अंतरिक्ष की 1 पंक्ति ले जा सकती है, इसलिए कोई लपेटन आवश्यक नहीं है

मैं सिर्फ एक UIView subview करने के लिए जोड़ने की कोशिश की:

UIView *pictureView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 25, 25)]; [pictureView setBackgroundColor:[UIColor redColor]]; [self.textView addSubview:pictureView]; 

लेकिन यह पाठ पर तैरता है और इसे कवर लगता है

मैंने अपवर्जन पथ पर पढ़ने का थोड़ा सा किया, जो इसे लागू करने का एक तरीका प्रतीत होता है। हालांकि, मैं पूरी तरह से चित्र की स्थिति नहीं करना चाहता – इसके बजाय, यह पाठ से प्रवाह होना चाहिए (जैसा कि <span> html <span> HTML में व्यवहार करता है)।

वेब के समाधान से एकत्रित समाधान "आईओएस 7 टेक्स्टकिट – छवि के साथ इनलाइन को कैसे सम्मिलित करें?"

आपको एक स्ट्रिंग का उपयोग करने की आवश्यकता होगी और छवि को NSTextAttachment उदाहरण के रूप में NSTextAttachment :

 NSMutableAttributedString *attributedString = [[NSMutableAttributedString alloc] initWithString:@"like after"]; NSTextAttachment *textAttachment = [[NSTextAttachment alloc] init]; textAttachment.image = [UIImage imageNamed:@"whatever.png"]; NSAttributedString *attrStringWithImage = [NSAttributedString attributedStringWithAttachment:textAttachment]; [attributedString replaceCharactersInRange:NSMakeRange(4, 1) withAttributedString:attrStringWithImage]; 

आप NSAttributedString और NSTextAttachment उपयोग करने का प्रयास कर सकते हैं। छवि का आकार बदलने के लिए NSTextAttachment को अनुकूलित करने के बारे में अधिक विवरण के लिए निम्नलिखित लिंक पर एक नज़र डालें। http://ossh.com.au/design-and-technology/software-development/implementing-rich-text-with-images-on-os-x-and-ios/

मेरे उदाहरण में मैं छवि को चौड़ाई में फिट करने का आकार बदलता हूं, आपके मामले में आप रेखा की ऊंचाई से मेल खाने के लिए छवि का आकार बदलना चाह सकते हैं

@ बिलोबाटम का कोड स्विफ्ट में परिवर्तित होकर उन लोगों के लिए आवश्यक हो:

 var attributedString = NSMutableAttributedString(string: "like after") var textAttachment = NSTextAttachment() textAttachment.image = UIImage(named: "whatever.png") var attrStringWithImage = NSAttributedString.attributedStringWithAttachment(textAttachment) attributedString.replaceCharactersInRange(NSMakeRange(4, 1), withAttributedString: attrStringWithImage) 

@ बिलोबैटम के जवाब पर विस्तार, और इस श्रेणी का उपयोग किसी अन्य प्रश्न से करें। मैंने इसे पकाया:

उपयोग:

 UILabel *labelWithImage = [UILabel new]; labelWithImage.text = @"Tap [new-button] to make a new thing!"; NSAttributedString *stringWithImage = [labelWithImage.attributedText attributedStringByReplacingOccurancesOfString:@"[new-button]" withImage:[UIImage imageNamed:@"MyNewThingButtonImage"] scale:0]; labelWithImage.attributedText = stringWithImage; 

कार्यान्वयन:

 @interface NSMutableAttributedString (InlineImage) - (void)replaceCharactersInRange:(NSRange)range withInlineImage:(UIImage *)inlineImage scale:(CGFloat)inlineImageScale; @end @interface NSAttributedString (InlineImages) - (NSAttributedString *)attributedStringByReplacingOccurancesOfString:(NSString *)string withInlineImage:(UIImage *)inlineImage scale:(CGFloat)inlineImageScale; @end 

 @implementation NSMutableAttributedString (InlineImages) - (void)replaceCharactersInRange:(NSRange)range withInlineImage:(UIImage *)inlineImage scale:(CGFloat)inlineImageScale { if (floorf(inlineImageScale) == 0) inlineImageScale = 1.0f; // Create resized, tinted image matching font size and (text) color UIImage *imageMatchingFont = [inlineImage imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate]; { // Font size NSDictionary *attributesForRange = [self attributesAtIndex:range.location effectiveRange:nil]; UIFont *fontForRange = [attributesForRange valueForKey:NSFontAttributeName]; CGSize imageSizeMatchingFontSize = CGSizeMake(inlineImage.size.width * (fontForRange.capHeight / inlineImage.size.height), fontForRange.capHeight); // Some scaling for prettiness CGFloat defaultScale = 1.4f; imageSizeMatchingFontSize = CGSizeMake(imageSizeMatchingFontSize.width * defaultScale, imageSizeMatchingFontSize.height * defaultScale); imageSizeMatchingFontSize = CGSizeMake(imageSizeMatchingFontSize.width * inlineImageScale, imageSizeMatchingFontSize.height * inlineImageScale); imageSizeMatchingFontSize = CGSizeMake(ceilf(imageSizeMatchingFontSize.width), ceilf(imageSizeMatchingFontSize.height)); // Text color UIColor *textColorForRange = [attributesForRange valueForKey:NSForegroundColorAttributeName]; // Make the matching image UIGraphicsBeginImageContextWithOptions(imageSizeMatchingFontSize, NO, 0.0f); [textColorForRange set]; [inlineImage drawInRect:CGRectMake(0 , 0, imageSizeMatchingFontSize.width, imageSizeMatchingFontSize.height)]; imageMatchingFont = UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext(); } // Text attachment with image NSTextAttachment *textAttachment = [NSTextAttachment new]; textAttachment.image = imageMatchingFont; NSAttributedString *imageString = [NSAttributedString attributedStringWithAttachment:textAttachment]; [self replaceCharactersInRange:range withAttributedString:imageString]; } @end @implementation NSAttributedString (InlineImages) - (NSAttributedString *)attributedStringByReplacingOccurancesOfString:(NSString *)string withInlineImage:(UIImage *)inlineImage scale:(CGFloat)inlineImageScale { NSMutableAttributedString *attributedStringWithImages = [self mutableCopy]; [attributedStringWithImages.string enumerateOccurancesOfString:string usingBlock:^(NSRange substringRange, BOOL *stop) { [attributedStringWithImages replaceCharactersInRange:substringRange withInlineImage:inlineImage scale:inlineImageScale]; }]; return [attributedStringWithImages copy]; } @end