让我告诉你我遇到的问题以及我是如何解决这个问题的.我有一个UIScrollView加载子视图,从左到右滚动.每个子视图有10-20张图像,每张400x200左右.当我从视图滚动到视图时,我经历了相当多的滞后.
在调查之后,我发现在卸下所有视图并再次尝试后,滞后消失了.我认为图像的同步缓存是滞后的原因.所以我创建了一个UIImageView的子类,它以异步方式加载图像.加载代码如下所示(self.dispatchQueue返回串行调度队列).
- (void)loadImageNamed:(NSString *)name {
dispatch_async(self.dispatchQueue, ^{
UIImage *image = [UIImage imageNamed:name];
dispatch_sync(dispatch_get_main_queue(), ^{
self.image = image;
});
});
}
Run Code Online (Sandbox Code Playgroud)
然而,在将我的所有UIImageViews更改为此子类后,我仍然经历了滞后(我不确定它是否被减少).我把问题的原因归结为self.image = image;.为什么这会导致这么多延迟(但仅限于第一次加载)?
请帮我.=(
使用AFNetworking,从服务器下载图像并放入UIImageView非常简单:
[imageView setImageWithURL:[NSURL URLWithString:@"http://i.imgur.com/r4uwx.jpg"] placeholderImage:[UIImage imageNamed:@"placeholder-avatar"]];
Run Code Online (Sandbox Code Playgroud)
如果我想用效果(可能是淡入淡出)替换图像怎么样?
这是因为我想制作带有大量图像的幻灯片.
我有一个带静态单元格的tableView.单元格包含一个完全填充它的ImageView.我还有另一个较小的ImageViews.我使用约束来定位这个ImageViews.我有一个关于调整约束的问题.如何在不编程if/else循环的情况下,如何为不同的设备大小设置不同的约束常量.有没有办法在故事板中设置它?我有一个主要布局的主要约束,例如,常数值为10.这对于iPhone 5屏幕是可以的,但在iPhone 6/6 plus屏幕上它应该高于10. iPhone5 Autolayout iPhone6 Autolayout
我的应用程序必须从http服务器加载图像并将其显示到UIImageView
我该怎么办?
我试过这个:
NSString *temp = [NSString alloc];
[temp stringwithString:@"http://192.168.1.2x0/pic/LC.jpg"]
temp=[(NSString *)CFURLCreateStringByAddingPercentEscapes(
nil,
(CFStringRef)temp,
NULL,
NULL,
kCFStringEncodingUTF8)
autorelease];
NSData *dato = [NSData alloc];
dato=[NSData dataWithContentsOfURL:[NSURL URLWithString:temp]];
pic = [pic initWithImage:[UIImage imageWithData:dato]];
Run Code Online (Sandbox Code Playgroud)
此代码在视图的viewdidload中,但没有显示任何内容!服务器正在运行,因为我可以从中加载xml文件.但我不能显示那个图像!
我需要以编程方式加载图像,因为它必须根据传递的参数进行更改!先感谢您.安东尼奥
有人可以帮我吗?新的iPhone开发人员.我试图在一个圆圈中显示一个.png图片而不是一个矩形,这是iPhone的标准
我在尝试模糊iOS应用中的部分屏幕时遇到了麻烦.请参阅图片以更好地了解我正在尝试做什么.

只有"BlurBox"的内容需要模糊,但其余内容可以清晰.因此,如果您正在查看表格视图,则只有BlurBox下方的内容会模糊(即使您滚动).其余的看起来很清楚.
我的第一个方法是调用UIGraphicsGetImageFromCurrentImageContext()每个.01s来将BlurBox下的所有图层组合成一个图像.然后模糊该图像并将其显示在所有内容上.
我尝试模糊的方法是:
https://github.com/tomsoft1/StackBluriOS
https://github.com/coryleach/UIImageAdjust
https://github.com/esilverberg/ios-image-filters
https://github.com/cmkilger/CKImageAdditions
[layer setRasterizationScale:0.25];
[layer setShouldRasterize:YES];
Run Code Online (Sandbox Code Playgroud)
以及一些自定义尝试.我也看过Apple的GLImageProcessing,但我认为对于我在这里尝试做的事情来说有点矫枉过正.
问题是,他们都是以 减缓.该应用程序不在应用程序商店上,所以我愿意使用任何私有/未记录的框架.
我有一种很远的想法是覆盖drawRect我使用的所有组件(UITableViewCells,UITableView等)的方法,并在运行中独立模糊它们.然而,这需要一些时间,这听起来像是一个可行的选择吗?
更新:
我尝试使用CIFilters如下:
CIImage *inputImage = [[CIImage alloc] initWithImage:[self screenshot]];
CIFilter *blurFilter = [CIFilter filterWithName:@"CIGaussianBlur"];
[blurFilter setDefaults];
[blurFilter setValue: inputImage forKey: @"inputImage"];
[blurFilter setValue: [NSNumber numberWithFloat:10.0f]
forKey:@"inputRadius"];
CIImage *outputImage = [blurFilter valueForKey: @"outputImage"];
CIContext *context = [CIContext contextWithOptions:nil];
self.bluredImageView.image = [UIImage imageWithCGImage:[context createCGImage:outputImage fromRect:outputImage.extent]];
Run Code Online (Sandbox Code Playgroud)
这确实有效,但速度非常慢.:(
我发现只有当我传入从磁盘加载的图像时,某些实现才会模糊.如果我传入我使用UIGraphicsGetImageFromCurrentImageContext()它创建的UIImage 不起作用.关于为什么会这样的任何想法?
更新:
我试过如下的Patel建议:
CALayer *backgroundLayer …Run Code Online (Sandbox Code Playgroud) image core-graphics image-processing objective-c uiimageview
我有这个UIImageView,我有它的最大高度和最大宽度的值.我想要实现的是我想拍摄图像(具有任何宽高比和任何分辨率)并且我希望它适合边框,因此图片不会超过它们,但它可以根据需要缩小它们.(图中标记为红色):

现在图像正确地适合所需的大小,但我有两个担忧:1.UIImageView不等于调整大小的图像的大小,因此留下红色背景(我不想要那样)2.如果图像小于我的高度UIImageView没有调整到更小,它保持相同的高度.
这是我的代码,我知道它的错误:
UIImage *actualImage = [attachmentsArray lastObject];
UIImageView *attachmentImageNew = [[UIImageView alloc] initWithFrame:CGRectMake(5.5, 6.5, 245, 134)];
attachmentImageNew.image = actualImage;
attachmentImageNew.backgroundColor = [UIColor redColor];
attachmentImageNew.contentMode = UIViewContentModeScaleAspectFit;
Run Code Online (Sandbox Code Playgroud)
那么,如何动态改变大小不仅的UIImageView.image,但整体的UIImageView,从而使得它的尺寸完全可调的内容.任何帮助将不胜感激,谢谢!
我想用一个显示图像的Custom TableViewCell实现一个TableView.
为了简单起见,我简单地使用autolayout将UIImageView放在tableviewcell中(如下图所示).

我想要的是在UIImageView中显示图像,但是那些图像尺寸可以是任何东西并且是不一致的(肖像,风景,方形)......
因此,我希望显示具有固定宽度(设备宽度)的图像和相对于图像比例的动态高度.我想要这样的东西:

遗憾的是,我无法达到这一结果.
以下是我实现它的方式 - (我使用Haneke从URL加载图像 - 存储在Amazon S3中的图像):
class TestCellVC: UITableViewCell {
@IBOutlet weak var selfieImageView: UIImageView!
@IBOutlet weak var heightConstraint: NSLayoutConstraint!
func loadItem(#selfie: Selfie) {
let selfieImageURL:NSURL = NSURL(string: selfie.show_selfie_pic())!
self.selfieImageView.hnk_setImageFromURL(selfieImageURL, placeholder: nil, format: HNKFormat<UIImage>(name: "original"), failure: {error -> Void in println(error)
}, success: { (image) -> Void in
// Screen Width
var screen_width = UIScreen.mainScreen().bounds.width
// Ratio Width / Height
var ratio = image.size.height / image.size.width
// Calculated Height for the picture
let newHeight …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用具有自动布局的新iOS 6 SDK制作非常简单的元素.我有一个ImageView并将其嵌入ScrollView中.(一切都使用Interface Builder构建)..png文件已设置,imageView模式设置为"左上角".
执行:
#import "ImaginariumViewController.h"
@interface ImaginariumViewController ()
@property (weak, nonatomic) IBOutlet UIScrollView *scrollView;
@property (weak, nonatomic) IBOutlet UIImageView *imageView;
@end
@implementation ImaginariumViewController
- (void)viewDidLoad
{
[super viewDidLoad];
self.scrollView.contentSize = self.imageView.image.size;
self.imageView.frame =
CGRectMake(0, 0, self.imageView.image.size.width, self.imageView.image.size.height);
}
@end
Run Code Online (Sandbox Code Playgroud)
当我运行应用程序时,图像不会滚动.关闭自动布局(使用支柱和弹簧)完成所有操作后,我正在进行滚动操作.我猜问题是限制.请问有人帮帮我吗?
我想用时控制图像排列UIViewContentModeScaleAspectFit在UIImageView.

例如,我有两个UIImageView一个视图如上所述.这两个UIImageView的contentMode是UIViewContentModeScaleAspectFit.现在我想将图像3设置为右对齐,将图像4设置为左对齐,以便这两个图像可以在一起.
我尝试将contentMode设置为UIViewContentModeScaleAspect|UIViewContentModeLeft,但它会让事情变得更糟.
任何建议表示赞赏.
uiimageview ×10
objective-c ×5
ios ×4
iphone ×3
uiimage ×3
autolayout ×2
swift ×2
uitableview ×2
afnetworking ×1
asynchronous ×1
cocoa-touch ×1
image ×1
ios6 ×1
performance ×1
uiscrollview ×1
uiview ×1
url ×1
xcode ×1