【发布时间】:2014-11-07 14:43:38
【问题描述】:
我的详细视图中有一个 uiimageview,我想制作它,以便当我点击图像时,它会全屏打开图像。但是,我下面的代码似乎不起作用。知道我做错了什么吗?
FullViewController.h
@interface FullArticleViewController : UIViewController <UINavigationControllerDelegate, UIImagePickerControllerDelegate, UIGestureRecognizerDelegate>
{
IBOutlet UITapGestureRecognizer *tap;
IBOutlet UIScrollView *scroller;
IBOutlet UILabel *firstnameLabel;
IBOutlet UILabel *bodyLabel;
IBOutlet UILabel *descriptionLabel;
BOOL isFullScreen;
CGRect prevFrame;
}
FullViewController.m
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view from its nib.
if ([[articleDetail objectForKey:@"ytID"] isEqualToString:@"none"]) {
featureImage.userInteractionEnabled = YES;
NSString *imageUrl = [NSString stringWithFormat:@"image/%@",cellImageLink];
[self.featureImage sd_setImageWithURL:[NSURL URLWithString:imageUrl]];
[scroller setScrollEnabled:YES];
featureImage.userInteractionEnabled = YES;
[scroller bringSubviewToFront:featureImage];
UITapGestureRecognizer *tapgesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(imgToFullScreen)];
[tapgesture setNumberOfTapsRequired:1];
[featureImage addGestureRecognizer:tap];
}
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch;
{
BOOL shouldReceiveTouch = YES;
if (gestureRecognizer == tap) {
shouldReceiveTouch = (touch.view == featureImage);
}
return shouldReceiveTouch;
}
-(void)imgToFullScreen{
if (!isFullScreen) {
[UIView animateWithDuration:0.5 delay:0 options:0 animations:^{
//save previous frame
prevFrame = featureImage.frame;
[featureImage setFrame:[[UIScreen mainScreen] bounds]];
}completion:^(BOOL finished){
isFullScreen = true;
}];
return;
} else {
[UIView animateWithDuration:0.5 delay:0 options:0 animations:^{
[featureImage setFrame:prevFrame];
}completion:^(BOOL finished){
isFullScreen = false;
}];
return;
}
}
编辑:查看上面更新的代码和下面的层次结构
【问题讨论】:
-
@rdelmar 是的,我做到了。
-
这段代码你得到了什么结果?它什么都不做吗?
-
@rdelmar 正确;它什么也不做。
-
从场景列表中发布视图层次结构的图像可能会有所帮助。
-
所以,实际上,您的图像视图位于层次结构的底部,而不是顶部(视觉上,我说的是——列表中最底部的视图是 z 顺序中最顶部的视图)。话虽这么说,把它带到前面应该是有效的。您确定您的滚动条 IBOutlet 已设置吗?此外,您可以尝试将图像视图拖到列表底部以更改其 z 顺序。
标签: ios objective-c image uiimageview