【问题标题】:Resizing multiple image views with orientation使用方向调整多个图像视图的大小
【发布时间】:2012-01-31 17:58:52
【问题描述】:

我正在创建一个通用 iOS 应用程序,除其他功能外,它还允许用户在触摸时生成 UIImageViews。

我遇到的问题是,当我旋转设备时,创建的视图没有正确调整大小

我已经把代码放到了我的主视图控制器方法中,如图:

-(void)touchesBegan:(NSSet*)touches withEvent:(UIEvent *)event
{
 //first part - creating the frame

 view = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"MyImage.png"]];
 view.frame = CGRectMake(50, 50, 100, 100);
 [self.view addSubview:view];

 //second part - triggering image placement on touch

 UITouch *touch = [[event allTouches] anyObject];
 view.center = [touch locationInView:self.view];
}

有人知道我可以通过什么方式为动态创建的视图实现自动调整大小的方法吗?

我正在寻找的效果是:它们不是使用旧的纵向坐标,而是以某种方式调整大小,将方向更改为横向,以便它们在相对于纵向坐标的位置上都可见。

如果我使用的是界面生成器,那么它会很简单,但是以编程方式执行此操作时我找不到明显的解决方案。

也不是为 shouldAutorotateToInterfaceOrientation 返回 YES 这么简单。

我检查了很多 iOS 开发的问答资源,但似乎没有多少解决方案专注于动态创建的 UIImageViews 和框架,例如我的示例。

如果有人能花时间为我提供解决方案,或者只是为我指明正确的方向,我将不胜感激。

提前谢谢你,

罗里

【问题讨论】:

    标签: iphone objective-c ios xcode uiinterfaceorientation


    【解决方案1】:

    相应地设置自动调整大小的掩码 每个UIView 都有一个属性UIViewAutoresizing

    view.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
    

    【讨论】:

    • 非常感谢! - FlexibleWidth/Height 参数不太有用,但我使用 UIViewAutoresizingFlexible(Right/Left/Top/Bottom)Margin 代替,它们将所有图像保存在正确的相对位置:D - 非常感谢你的帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-27
    • 1970-01-01
    • 2014-06-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多