如何在缓存之前调整来自URL的图像的大小,缩放和裁剪.我尝试使用以下代码实现此目的.
[cell.profilePicture setImageWithURL:[NSURL URLWithString:[rowData objectForKey:@"pictureUrl"]] placeholderImage:nil];
cell.profilePicture.image = [self imageByScalingAndCroppingForSize:CGSizeMake(cell.profilePicture.frame.size.width, cell.profilePicture.frame.size.height) image:cell.profilePicture.image];
Run Code Online (Sandbox Code Playgroud)
这产生了一个奇怪的结果.首先,它显示未调整大小/缩放/裁剪的版本.但是,当我向下滚动然后返回时,它会显示调整大小/缩放/裁剪的版本.我知道这段代码首先缓存图像并调整大小/缩放/裁剪它们.但是,我无法想出更好的解决方案.我认为应该有一些能够下载图像的东西,以便独立调整大小/缩放/裁剪和缓存.有任何想法吗?
谢谢.
我正在尝试创建一个漫画阅读器应用程序,它支持在线阅读和离线阅读(通过下载).
我发现MWPhotoBrowser是我的图像查看器,它支持SDWebImage作为图像缓存.
我的问题是,如果一些用户在线阅读漫画的一小部分,然后他们决定下载它以供离线阅读.由于已读取的部分由SDWebImage缓存,我不想再从Web服务器下载它们.但是,由于用户要求在本地下载它们,我不想将它们保留在图像缓存中,因为这样会使下载的图像不在我们手中.
将图像从图像缓存复制到我想要的位置是一个可行的解决方案,但它需要存储空间.所以,我要做的是将图像从图像缓存切割到正确的位置,然后在图像缓存中进行一些软链接.这样,存储文件系统中应该只有一个映像副本.
有关于此的任何提示或提示吗?
SDWebImage声称 AFNetworking不会缓存图像本身而只缓存HTTP响应,因此SDWebImage可以更快地从缓存中调用图像并进行呈现.
如果我想纯粹使用AFNetworking,这样的声明是真的与否,真的是性能明显的东西吗?这是我应该警惕的吗?
我正在使用SDWebImage缓存我的应用程序中的图像,但最近我遇到了一个问题,应该缓存的图像保持刷新.调查一下,我发现来自AWS的完整图像网址实际上是由于参数添加到网址末尾而改变的.每次我获取包含图像URL的对象时,图像url返回动态"签名"和"过期"参数(出于安全目的).就图像缓存而言,是一个不同的URL,但请注意图像的相同路径.
首先获取:
https://myapp.s3.amazonaws.com/path/image123.jpeg?AWSAccessKeyId=SOMEKEY&Signature=vrUFlMFEQ9fqQ%3D&Expires=1441702633
1秒后再次获取:
https://myapp.s3.amazonaws.com/path/image123.jpeg?AWSAccessKeyId=SOMEKEY&Signature=2mcMxUJLyJd7E%3D&Expires=1441703105
处理这种情况的最佳方法是什么?如果SDWebImage有一个选项可以忽略文件路径之外的查询参数,那肯定会很棒.
我开发了一个应用程序,在UICollectionView类似Tinder中显示"全屏卡" .该卡包含图像和一些文本.我被加载使用图像SDWebImage的sd_setImageWithURL方法中UICollectionView的细胞.
然而,这并没有给我带来良好的性能,因为当用户在卡上时,图像大多是加载的.因此,我使用SDWebImagePrefetcher预取队列执行此操作,如下所示: -
func startImagePreloadingOperationForIndex(index:Int)
{
let numberOfImagesToBePreloadedOnEachSide = 20
var previousIndex = index - numberOfImagesToBePreloadedOnEachSide
var nextIndex = index + numberOfImagesToBePreloadedOnEachSide
if previousIndex < 0
{
previousIndex = 0
}
if nextIndex >= currentNewsCollection.count
{
nextIndex = currentNewsCollection.count - 1
}
if previousIndex >= nextIndex || currentNewsCollection.isEmpty
{
return
}
let arrayOfNewsStories = currentNewsCollection[previousIndex...nextIndex]
let arrayOfImageURLs = arrayOfNewsStories.map( { ImageUtility.getImageStringForNewsStory($0) } )
SDWebImagePrefetcher.sharedImagePrefetcher().prefetchURLs(arrayOfImageURLs, progress: { (x, y) -> …Run Code Online (Sandbox Code Playgroud) 我正在使用SDWebImage开源项目异步加载图像.我可以为模拟器和本地设备构建和运行.但是,当我尝试构建分发(即存档)时,编译器似乎不明白头文件是什么:
我几乎按照说明,相对容易,在github.com/rs/SDWebImage上描述.
我知道事情太顺利/容易变得如此.奇怪的是,我从未真正遇到过归档专属的问题.有人曾尝试使用SDWebImage存档吗?
*更新* 我根据以下评论更新.现在我在存档构建时收到以下错误:
arm-apple-darwin10-llvm-gcc-4.2:Poll/BuildProductsPath/Release-iphoneos/libSDWebImage.a:没有这样的文件或目录Command /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/llvm-gcc-4.2退出代码1失败
奇怪的是我在我的项目中有sdwebimage.a文件(实际上有2个,我复制和包含的文件,以及SDWEbImage项目本身的第2个文件).
*更新2* 经过进一步调查,当我存档(.a文件为红色)时,我的SDWebImage项目没有建立.但任何其他构建类型工作正常.我到处看,似乎SDWebImage项目具有分发配置.不确定这里还有什么问题.
我正在使用Kingfisher来显示来自网址的图片,但我的端点需要一个授权标头.如何在iOS中使用Kingfisher或SDWebImage这些网址?
我通过CocoaPods在我们的项目中面临SDWebImage + WebP集成的问题.我正在使用SDWebImage + WebP从我的服务器在UItableView中的集合列表中加载我的webp图像.
每次我重新进入前景或每次重新启动时,单元格中的imageView将从磁盘重新获取图像(意味着图像视图将为空白)并使用相同的图像重新加载UIImageview,即使数据在服务器上没有更改.
但是当我使用具有相同代码库的JPG格式时,它将按照我的预期工作,重新输入前景没有黑屏,它将显示缓存的图像.但它不适用于webp
我使用的代码:
[videoV.imageViewVideo sd_setImageWithURL:[NSURL URLWithString:imageUrl] placeholderImage:nil options:SDWebImageRefreshCached|SDWebImageRetryFailed ];
Run Code Online (Sandbox Code Playgroud)
任何帮助欣赏!
我正在开发一个iOS应用程序,它使用alamofire和swiftyJSON与API进行交互.在这个api中,我得到了一堆返回的值,其中一个是图像.返回的图像以数组的形式出现,但我能够遍历数组并显示单个图像.为了使应用程序更高级,我决定在我的应用程序中实现UIPageViewController类.我调用了API函数并试图将我的图像传递给视图控制器.
我的故事板中的事物列表
据我所知,我的代码很好,但是当我运行应用程序时,控制台中没有任何反应.以下是我的代码.
protocol ProductImagesPageViewControllerDelegate: class {
func setupPageController(numberOfPages: Int)
func turnPageController(to index: Int)
}
class ProductPageVC: UIPageViewController {
weak var pageViewControllerDelegate: ProductImagesPageViewControllerDelegate?
override func viewDidLoad() {
super.viewDidLoad()
automaticallyAdjustsScrollViewInsets = false
dataSource = self
delegate = self
}
func configureImg() {
let productId = ProductServices.instance.selectedProduct?.id
ProductServices.instance.findIndividualProducts(id: productId!, completion: { (success) in
if success {
ProductServices.instance.productDetails.forEach({ (productDetail) in
let images = productDetail.productImg.count
if images > 0 {
for image in 0..<(images) {
let imageVC = self.storyboard?.instantiateViewController(withIdentifier: PRODUCT_IMAGE_VC) …Run Code Online (Sandbox Code Playgroud) 我正在使用 Xcode 13.0 (13A233) 在配备 M1 芯片的 Macbook 上开发一个应用程序。将 pod 更新到最新版本后,pod 抱怨错误
CompileSwiftSources 正常的arm64 com.apple.xcode.tools.swift.compiler(在项目“Pods”的目标“Alamofire”中)
并且不为真实设备或模拟器构建。
我在项目中包含以下 pod:
我已经为主项目和所有 pod 项目应用了以下解决方案:
您可以在此屏幕截图上查看错误详细信息。
我知道与这些问题相关的答案有很多,但我已经尝试了每个问题,当我无法用这些答案解决问题时,我在这里发布问题。
sdwebimage ×10
ios ×8
iphone ×3
objective-c ×3
swift ×3
alamofire ×2
afnetworking ×1
amazon-s3 ×1
caching ×1
image ×1
ios5 ×1
json ×1
kingfisher ×1
symlink ×1
webp ×1
xcode ×1
xcode13 ×1