我只想要一个最容易在UIImageVies下进行反射的方法,这个方法很容易管理.
我想在表格单元格中显示这么多图像.我知道两种显示图像的方法.
一个是为UIImageView创建一个实例并显示它
CGRect rect=CGRectMake(x,y,width,height);
UIImageView *image=[[UIImageView alloc]initWithFrame:rect];
[image setImage:[UIImage imageNamed:@"sample.jpg"]];
Run Code Online (Sandbox Code Playgroud)
另一种方法是,
CGRect rect=CGRectMake(x,y,width,height);
[[UIImage imageNamed:@"sample.jpg"] drawInRect:rect];
Run Code Online (Sandbox Code Playgroud)
现在,我的问题是,这两者有什么区别?哪一个有效?还是有其他功能比这更好?
提前致谢....
非常奇怪的行为,使用此代码在屏幕中央有一个圆点,并且在笔尖内部没有任何内容的UIScrollview.我希望UIScrollview应该是空的.滚动屏幕时,点模糊并消失.
- (void)viewDidLoad {
[super viewDidLoad];
NSArray *subviews = [closetScroll subviews];
UIImageView *strange=[subviews objectAtIndex:0];
strange.center = CGPointMake([[UIScreen mainScreen] bounds].size.width/2, [[UIScreen mainScreen] bounds].size.height/2);
strange.alpha=1;
NSLog(@"%@",subviews);
}
Run Code Online (Sandbox Code Playgroud)
控制台输出是:
<UIImageView: 0x4b1f780; frame = (380.5 508.5; 7 7); opaque = NO; autoresize = LM; userInteractionEnabled = NO; layer = <CALayer: 0x4b1f820>
Run Code Online (Sandbox Code Playgroud)
有谁知道为什么?
我正在尝试制作一个动画,看起来像是朝向用户开放的2个法式门(或2个舱门).
我尝试使用内置的UIViewAnimationOptionTransitionFlipFromRight转换,但转换的原点似乎是UIImageView的中心而不是左边缘.基本上我有2个UIImageViews,每个填充都有屏幕.我希望动画看起来像UIImageViews从屏幕中心提升到边缘.
[UIView transitionWithView:leftView
duration:1.0
options:UIViewAnimationOptionTransitionFlipFromRight
animations:^ { leftView.alpha = 0; }
completion:^(BOOL finished) {
[leftView removeFromSuperview];
}];
Run Code Online (Sandbox Code Playgroud)
以前有人做过这样的事吗?任何帮助都是极好的!
更新:感谢Nick Lockwood的工作代码
leftView.layer.anchorPoint = CGPointMake(0, 0.5); // hinge around the left edge
leftView.frame = CGRectMake(0, 0, 160, 460); //reset view position
rightView.layer.anchorPoint = CGPointMake(1.0, 0.5); //hinge around the right edge
rightView.frame = CGRectMake(160, 0, 160, 460); //reset view position
[UIView animateWithDuration:0.75 animations:^{
CATransform3D leftTransform = CATransform3DIdentity;
leftTransform.m34 = -1.0f/500; //dark magic to set the 3D perspective
leftTransform = CATransform3DRotate(leftTransform, -M_PI_2, 0, …Run Code Online (Sandbox Code Playgroud) 我正在使用webcache加载一个facebook用户列表,它的工作非常棒.直到你选择其中的一个单元,然后它似乎要么改变内容模式,或者更可能它改变了UIImageView的帧的大小,而是根据画面的实际大小.为清楚起见,这里有一些屏幕
在这里装载 http://img.photobucket.com/albums/v246/homojedi/Screenshot20120727114807.png
并且在选择一些图像时,你可以看到它们似乎跳到了原始的方面. http://img.photobucket.com/albums/v246/homojedi/Screenshot20120727114827.png
正如预期的那样,如果我将它们从屏幕上滚动并返回到它们,它们将恢复到它们在开始时的状态.
令人费解.我唯一没有尝试的是子类化uitableView并在那里设置其布局子视图.除此之外还有什么我可以做的吗?
编辑:请求的代码
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
// typically you need know which item the user has selected.
// this method allows you to keep track of the selection
_indexPath = indexPath;
[_indexPath retain];
}
Run Code Online (Sandbox Code Playgroud) 我正在创建UIImageView使用界面Builder.其框架尺寸为(320,67).我想在imageView上显示图像.我从网上获取图像.问题是从web获取的图像被拉伸到imageview上显示...这里是我的代码
NSData *imageData=[NSData dataWithContentsOfURL:[NSURL URLWithString:@"http://www.isco.com/webproductimages/appBnr/bnr1.jpg"]];
imageView.image = [UIImage imageWithData:imageData];
Run Code Online (Sandbox Code Playgroud)
谁能告诉我如何显示图像适合在imageView上显示?
我UIImageView想在Flipboard中创建一个像阴影一样的渐变.
它的一个例子是该图像中的图片

正如您在右侧iPhone上看到的那样,顶部和底部有一个较暗的渐变.这样如果图片是白色的,仍然可以看到白色文本.
有人对我如何实现这个有任何建议吗?我是iOS开发的新手,因此对此毫无头绪.谢谢!
我创建了一个UIImageView并分配了它UIImage.我将UIImageView内容模式设置为Aspect Fit.如何从图像的顶部和底部删除填充,或者如何调整UIImageView图像的大小?我尝试了一切.
如果你要说要获得图像的新尺寸,它将无法工作.获取图像大小UIImageView仅显示原始图像的宽度和高度.
请不要链接其他帖子.我已经读过了.它们不起作用.
有很多关于自动布局的指南,例如:http : //www.raywenderlich.com/83129/beginning-auto-layout-tutorial-swift-part-1
现在约束似乎并不特别复杂,除了在 ViewController 中的 UIImageView 上尝试设置它们时,勾选“使用自动布局”后,我一生都无法设置任何约束我单击用于实现此目的的三个按钮中的任何一个,用于设置约束的所有选项都是灰色的。
我确定这很简单……帮助不大?
我在参考资料中找到了一些内容:“如果您只选择了一个元素,则需要多个元素的约束选项将被禁用。” 但在所有指南中,我都不需要选择 UIImageView 来设置约束。
编辑:添加图像:
我有一个UITableView从服务加载图像.它获取URL并下载图像NSURLSession.sharedSession().dataTaskWithURL:
NSURLSession.sharedSession().dataTaskWithURL(url, completionHandler: { (data, _, error) -> Void in
guard
let data = data where error == nil,
let image = UIImage(data: data)
else {
print(error?.localizedDescription)
return
}
dispatch_async(dispatch_get_main_queue()) {
[unowned self] in
self.pictureView.image = image
self.pictureView.layoutIfNeeded()
}
}).resume()
Run Code Online (Sandbox Code Playgroud)
这UIImageView是故事板场景的出口.该UIImageView内容模式是看点飞度.
该UIImageView可见细胞最初显示为空(无图像),即使我已确认的图像设置.直到单元格在屏幕上滚动,单元格才会重绘(?)并显示图像.
所以这似乎是某种时间问题,但我无法弄明白.在dispatch_async设置图像后,我尝试在块中调用以下所有内容:
self.pictureView.setNeedsDisplay()
self.pictureView.setNeedsUpdateConstraints()
self.pictureView.setNeedsLayout()
self.pictureView.reloadInputViews()
Run Code Online (Sandbox Code Playgroud)
这些都没有解决问题.是什么导致此图像仅在单元格滚出/进入视图后显示?
编辑:可能需要注意的是,这是在笔尖和相关类中发生的.笔尖被加载,然后我开始下载.我想知道笔尖是否自行放置,当我的图像被下载并设置在UIImageView布局上时,通道已经完成.然后通过在屏幕上移动单元格(包含笔尖),单元格再次执行布局,并且所有内容都正确显示.只是一个猜测,我仍然坚持这一点.
编辑2:进一步澄清过程:
1)我的UIViewController包含一个UITableView.
2)这UITableView会从UITableViewCell名为PostCell 的自定义类中加载单元格.
3)PostCell的全部内容是从名为PostView(带有PostView类)的笔尖加载的单个视图.init:style:reuseIdentifier在PostCell 期间发生了这种负载:
postView …Run Code Online (Sandbox Code Playgroud) uiimageview ×10
ios ×7
iphone ×4
swift ×3
objective-c ×2
uiimage ×2
uitableview ×2
xcode ×2
constraints ×1
drawrect ×1
gradient ×1
ipad ×1
reflection ×1
shadow ×1
uiscrollview ×1