如何在 UITextView 中动态加载图像

     2023-02-19     66

关键词:

【中文标题】如何在 UITextView 中动态加载图像【英文标题】:How to load images dynamically inside UITextView 【发布时间】:2020-04-23 09:34:45 【问题描述】:

我有一个 UITextView 并在其中附加了 TextAttachments。我正在从 web url 获取照片。代码如下:

image.load(url: URL(string: ("http://www.furkan.webofisin.com/upload/media/5db1b96366cd8.jpg")))
                        imageAttachment.image = image.image

                    let image1String = NSAttributedString(attachment: imageAttachment)
                    fullString.append(image1String)

这是作为扩展的加载函数:

var imageUrlString: String?

func load(urlString: String) 

    imageUrlString = urlString
    guard let url = URL(string: urlString) else 

        DispatchQueue.main.async 
            let urlMessage = "Hata"
            appDelegate.errorView(message: urlMessage, color: smoothGreenColor)
        

        return

    

    image = nil

    if let imageFromCache = imageCache.object(forKey: urlString as NSString) 

        self.image = imageFromCache
        return
    

    URLSession.shared.dataTask(with: url)  (data , response, error) in

        if error != nil 

               DispatchQueue.main.async 
                     let urlMessage = "Bir hata meydana geldi."
                     appDelegate.errorView(message: urlMessage, color: smoothGreenColor)
                     
            return
        

       DispatchQueue.main.async 

            let imageToCache = UIImage(data: data!)

            if self.imageUrlString == urlString 

                self.image = imageToCache
            

             imageCache.setObject(imageToCache ?? UIImage(named: "astast")!, forKey: urlString as NSString)

       

    .resume()


由于缓存,刷新页面后第一次不显示图像。 我检查了 image.image 作为 UIImage 但在加载完成之前它总是为零。

这是第一次打开的截图。

At first opening image data is nil

如何在图像数据填充后检测和重新加载图像。

【问题讨论】:

【参考方案1】:

添加完成作为获取图像的调用最初是异步的,与本地缓存不同

func load(urlString: String,completion:@escaping(()  -> () )) 

    imageUrlString = urlString
    guard let url = URL(string: urlString) else 

        DispatchQueue.main.async 
            let urlMessage = "Hata"
            appDelegate.errorView(message: urlMessage, color: smoothGreenColor)
        

        return

    

    image = nil

    if let imageFromCache = imageCache.object(forKey: urlString as NSString) 

        self.image = imageFromCache
        completion()
        return
    

    URLSession.shared.dataTask(with: url)  (data , response, error) in

        if error != nil 

               DispatchQueue.main.async 
                     let urlMessage = "Bir hata meydana geldi."
                     appDelegate.errorView(message: urlMessage, color: smoothGreenColor)
                     
            return
        

       DispatchQueue.main.async 

            let imageToCache = UIImage(data: data!)

            if self.imageUrlString == urlString 

                self.image = imageToCache
            

             imageCache.setObject(imageToCache ?? UIImage(named: "astast")!, forKey: urlString as NSString)

            completion()
       

    .resume()



打电话

image.load(url: URL(string: ("http://www.furkan.webofisin.com/upload/media/5db1b96366cd8.jpg"))) 

            imageAttachment.image = image.image 
            let image1String = NSAttributedString(attachment: imageAttachment)
             fullString.append(image1String)


【讨论】:

谢谢,但它不起作用。我在完成时调用此函数,第一次尝试未加载图像,但当我关闭并重新打开加载的控制器图像时 我的意思是,如果在第一次尝试获取图像之前缓存,否则显示 nil

如何在每个组件的 body 标签中动态加载图像?

】如何在每个组件的body标签中动态加载图像?【英文标题】:HowcanIdynamicallyloadaimageinthebodytagineachcomponent?【发布时间】:2019-09-2607:27:36【问题描述】:我是Angular的新手,我试图创建这个示例来让我理解。我希望当我从一个组件... 查看详情

从 HTML 将图像加载到 UITextview/WKWebView

】从HTML将图像加载到UITextview/WKWebView【英文标题】:LoadingImagesintoUITextview/WKWebViewfromHTML【发布时间】:2018-08-0819:23:02【问题描述】:尝试将包含图像的HTML内容加载到UITextView或WKWebView中(我只需要渲染它!)但是,当我将HTML加载... 查看详情

如何在swift ios的集合视图中动态加载url(以图像形式)?

】如何在swiftios的集合视图中动态加载url(以图像形式)?【英文标题】:Howtodynamicallyloadurls(intheformifimages)incollectionviewinswiftios?【发布时间】:2017-09-2208:23:19【问题描述】:我有如下的名字数组["ActingChiefJusticeGitaMittal",&qu... 查看详情

如何在 iPhone 中动态更改 UITextView 中文本的字体大小

】如何在iPhone中动态更改UITextView中文本的字体大小【英文标题】:HowtochangethefontsizeoftextinUITextViewdynamicallyiniPhone【发布时间】:2009-10-2121:03:00【问题描述】:我有一个固定大小的UITextView说宽度和高度为150,150。目的是展示当天的... 查看详情

如何根据 UITextView 动态调整 xib 的大小

】如何根据UITextView动态调整xib的大小【英文标题】:HowtodynamicallyresizexibaccordingtoUITextView【发布时间】:2017-07-1717:24:46【问题描述】:我正在使用自动布局。我正在从xib加载UIView。除UITextView之外的所有元素都具有静态大小。我已... 查看详情

EXTJS:如何在表单中插入图像

】EXTJS:如何在表单中插入图像【英文标题】:EXTJS:howtoinsertimagesinaform【发布时间】:2012-10-2419:52:07【问题描述】:我在将图像插入表单时遇到问题。图像的地址托管在数据库中,我必须通过JSON动态加载。我在PHP中使用过JSON。... 查看详情

在动态网站中快速加载图像

】在动态网站中快速加载图像【英文标题】:LoadUpImagesQuicklyinDynamicWebsite【发布时间】:2018-07-2721:02:36【问题描述】:所以我一直在开发一个动态网站,在某个页面上有大约200多张图片,目前,该网站会提取我服务器的信息,并... 查看详情

如何在 iOS 中检测 UITextView (UIScrollView) 故障的底部

】如何在iOS中检测UITextView(UIScrollView)故障的底部【英文标题】:HowtodetectbottomofUITextView(UIScrollView)glitchiniOS【发布时间】:2014-05-0803:28:24【问题描述】:我正在开发一个惰性加载器,我遇到了一个问题,我的UITextView认为它在我加... 查看详情

在 WPF 中动态加载图像

】在WPF中动态加载图像【英文标题】:DynamicloadingofimagesinWPF【发布时间】:2010-10-0820:19:29【问题描述】:我有一个WPF的奇怪问题,我在运行时从磁盘加载图像并将它们添加到StackView容器中。但是,图像没有显示。经过一番调试,... 查看详情

如何确定 IE 中动态加载图像的 img 宽度/高度?

】如何确定IE中动态加载图像的img宽度/高度?【英文标题】:HowcanIdetermineimgwidth/heightofdynamicallyloadedimagesinIE?【发布时间】:2011-02-2613:40:35【问题描述】:我的标记是一个简单的div元素,id为“load”。然后,我使用jQuery将图像元... 查看详情

如何将动态加载的图像调整为闪存(as3)

】如何将动态加载的图像调整为闪存(as3)【英文标题】:Howtoresizedynamicallyloadedimageintoflash(as3)【发布时间】:2011-04-1702:50:01【问题描述】:一旦图像被动态调用到舞台并放置在MC中,我正在努力寻找正确的as3代码来调整图像大... 查看详情

如何在 Kivy 中将图像放入动态文本中

】如何在Kivy中将图像放入动态文本中【英文标题】:HowtoputimagesintoadynamictextinKivy【发布时间】:2018-11-0318:05:30【问题描述】:我正在研究kivy,并希望将图片嵌入到显示的文本中。文本被加载一个简单的字符串,然后显示,这很... 查看详情

如何动态调整 UITextView 的高度

】如何动态调整UITextView的高度【英文标题】:HowtodynamicallyadjustheightofUITextView【发布时间】:2016-07-3022:59:09【问题描述】:所以我知道有几个类似我的帖子,但不是我想要的。所以这就是我想要完成的事情。我有一个看起来像这... 查看详情

在图像上淡出滚动 UITextView?

】在图像上淡出滚动UITextView?【英文标题】:FadeoutscrollingUITextViewoverimage?【发布时间】:2014-07-0715:50:51【问题描述】:我希望在背景图像上淡出滚动的UITextView,类似于这个小示例顶部的渐变。我正在尝试使用CAGradientLayer和掩码... 查看详情

在 ReactJs 中基于动态路径加载图像

】在ReactJs中基于动态路径加载图像【英文标题】:LoadimagesbasedondynamicpathinReactJs【发布时间】:2018-01-0205:51:05【问题描述】:我正在尝试在我正在制作的购物车中显示图像,但它没有显示出来。我必须导入每个图像吗?我知道我... 查看详情

如何判断动态加载的图像是不是存在

】如何判断动态加载的图像是不是存在【英文标题】:Howtotellifdynamicallyloadedimageexists如何判断动态加载的图像是否存在【发布时间】:2011-07-2701:03:01【问题描述】:我正在将来自不同网站的图像动态加载到asp.netListView控件中,如... 查看详情

动态 UIScrollView 中的动态 UITextView - iOS

】动态UIScrollView中的动态UITextView-iOS【英文标题】:DynamicUITextViewinadynamicUIScrollView-iOS【发布时间】:2013-06-0914:41:23【问题描述】:我正面临一个需要很长时间才能解决的问题。我构建了一个视图,其中包含一个ScrollView。在ScrollVi... 查看详情

如何在 Sencha 中动态加载轮播项目

】如何在Sencha中动态加载轮播项目【英文标题】:HowtodynamicallyloadcarouselitemsinSencha【发布时间】:2013-02-0422:00:18【问题描述】:我的产品视图有问题。我想显示产品数据。每个产品都是一个带有图像和文字的“盒子”。我想在一... 查看详情