小编Ale*_*xFZ的帖子

UIImageView/UIScrollView强制固定的宽高比适合屏幕

我正在为iPad制作一个简单的应用程序,它包含一个可以放大/缩小并导航的巨型图像.

这张图片放在a里面UIImageView,然后放在里面UIScrollView.

导航和缩放工作100%罚款; 但是,图像以固定的宽高比加载以适合屏幕,并且永远不会改变(即使在放大时).

我有一种感觉,Interface Builder正在设置一些我不知道的属性,但我已经尝试了一些我能想到的解决这个问题的方法.

问题:

当应用程序最初加载时,其中的内容UIScrollView会自动调整大小,以便通过更改其宽高比来完全适合iPad屏幕./fixed; 实际图像很大(比iPad分辨率大).即使放大图像,此缩放的宽高比仍然保持不变,并使图像看起来拉伸.

无论我尝试什么,我都无法阻止iPad自动重新缩放我的图片.我只是希望应用程序开始与我的形象在iPad上正常显示(100%缩放),与目前适合iPad的屏幕为图像的左上角上的部分.

我试图解决它:

我尝试将UIImageView'sInterface Builder中的内容模式更改为"左上角".这似乎工作得很好,但后来我意识到,UIScrollView不会让你滚动图像经过最初显示的部分(左上角).您可以放大左上角并滚动,但不要超过最初在屏幕上显示的内容.

码:

这是我用来设置视图的代码.imageScrollViewUIScrollView,而且imageViewUIImageView.他们都是IBOutlets.

   // Set the needed attributes of the imageView
    [imageView setImage:[UIImage imageNamed: @"TestImage.png"]];
    imageView.userInteractionEnabled = YES;

    // Set a bunch of the imageScrollView attributes.

    // calculate minimum scale to perfectly fit image width, and begin at that scale
    float minimumScale = [imageScrollView frame].size.width  / [imageView frame].size.width; …
Run Code Online (Sandbox Code Playgroud)

iphone uiscrollview ipad ios

10
推荐指数
1
解决办法
3万
查看次数

以编程方式缩放UIWebView而不使用手势 - 中心点未正确计算

问题

我的iPad应用程序中有一个UIWebView,我需要以编程方式进行缩放,但不使用手势/点击.该应用程序.有一个"+"和一个" - "按钮,用于以用户定义的增量放大和缩小(这是一个视觉障碍的应用程序).

这个+/-缩放按钮功能以前在我的应用程序时100%正常工作.在UIScrollView(而不是WebView)中使用了UIImageView.ImageView是缩放的实际视图,并且为ScrollView的zoomToRect方法计算了CenterPoint.

我现在有一个WebView,我知道它包含一个ScrollView作为子视图.我尝试调整以前使用ImageView/ScrollView组合的代码来缩放WebView的ScrollView,但它不再为zoomToRect正确计算CenterPoint : .

怎么了:

WebView在缩放级别方面正确缩放,但中心点始终是错误的.出于某种原因,屏幕每次都会在左上角放大.

另一个奇怪的问题是,在您第一次放大后,您无法在WebView中滚动超过屏幕的可见部分.如果你尝试,它会显示一些超出当前可见区域范围的内容,但它会立即快照.

我尝试过的:

我正在尝试缩放UIWebView的ScrollView.

我创建了一个指向ScrollView的指针,并将"self"设置为其委托.然后我设置了各种变量,例如scrSize(要缩放的视图的大小)和ZoomHandler(如下所述):

- (void)viewDidLoad {
  // ... Various UIWebView setup ...    
  [self LoadURL];

  // Zooming & scrollview setup
  zoomHandler = [[ZoomHandler alloc] initWithZoomLevel: ZOOM_STEP];
  scrSize = CGPointMake(self.WebView.frame.size.width, self.WebView.frame.size.height);

  scrollView = [WebView.subviews objectAtIndex:0];
  [scrollView setTag:ZOOM_VIEW_TAG];
  [scrollView setMinimumZoomScale:MINIMUM_SCALE];
  [scrollView setZoomScale:1];
  [scrollView setMaximumZoomScale:10];
  scrollView.bounces = FALSE;
  scrollView.bouncesZoom = FALSE;
  scrollView.clipsToBounds = NO;
  [scrollView setDelegate:self];

  [super viewDidLoad];
}
Run Code Online (Sandbox Code Playgroud)

要覆盖WebView的默认缩放限制,我将此Javascript注入webViewDidFinishLoad:方法中加载的网页:

function increaseMaxZoomFactor() {
  var element = document.createElement('meta');
  element.name = "viewport";
  element.content = …
Run Code Online (Sandbox Code Playgroud)

iphone uiwebview uiscrollview ipad ios4

6
推荐指数
1
解决办法
5557
查看次数

iPad编程,以编程方式反转颜色的任何方式?

您知道iPad如何反转颜色?对于我正在研究的应用程序,我们想要一个按钮,以同样的方式反转其中一个视图的颜色.sdk对这样的东西有什么样的支持吗?

colors ipad ios

5
推荐指数
1
解决办法
1438
查看次数

UIGestureRecognizers的自定义操作(带自定义参数)

我的问题的简短版本:

我无法弄清楚如何让我的UITapGestureRecognizer的"动作"采取额外的参数,并实际使用它们.

这是我的问题的概述:

我试图让我的iPad应用程序记录(使用NSLog)UITouch的坐标,只要他们按下我的应用程序的UIButton之一就会发生.触摸的位置需要相对于触摸的按钮.

我做了什么:

我已经实现了一个UITapGestureRecognizer并将其添加到我的每个按钮中.我的问题在于使用的操作,因为它需要对每个按钮都是动态的.

我目前有这个代码:

 UITapGestureRecognizer *iconClickRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(logIcon:withTag:)];
 [iconClickRecognizer setNumberOfTapsRequired:1];
 [iconClickRecognizer setNumberOfTouchesRequired:1];
 [iconClickRecognizer setDelegate:self];
 [[self.view viewWithTag:1] addGestureRecognizer:iconClickRecognizer];

 [iconClickRecognizer release];
Run Code Online (Sandbox Code Playgroud)

当我知道这有效时,我会使用for循环通过标签将iconClickRecognizer添加到所有按钮.

所述logIcon:(INT)withTag方法如下所示:

-(void)logIcon:(UIGestureRecognizer *)gestureRecognizer withTag:(int)tag {
  NSLog(@"tag X: %f", [gestureRecognizer locationInView:(UIView*)[self.view viewWithTag:tag]].x);
  NSLog(@"tag Y: %f", [gestureRecognizer locationInView:(UIView*)[self.view viewWithTag:tag]].y);
}
Run Code Online (Sandbox Code Playgroud)

什么不起作用:

当我将标签硬编码到logIcon方法时,它会正确记录信息.但是,我不知道如何使这个方法动态化,实际上使用"tag"参数.

任何帮助将不胜感激.

谢谢,亚历克斯

iphone xcode objective-c ipad ios4

3
推荐指数
1
解决办法
3161
查看次数

标签 统计

ipad ×4

iphone ×3

ios ×2

ios4 ×2

uiscrollview ×2

colors ×1

objective-c ×1

uiwebview ×1

xcode ×1