iPhone 模态视图比屏幕小

标签 iphone modal-dialog modalviewcontroller

我正在尝试做一些不应该那么复杂的事情,但我无法弄清楚。 我有一个 UIViewController 显示 UITableView。我想当用户按一行时显示一个上下文菜单。我希望这是一个带有标签和按钮的半透明 View 。 我可以使用 AlertView,但我希望完全控制标签和按钮的格式,并且希望使用 Interface Builder。

因此,我创建了 250x290 的小 View ,将 alpha 设置为 0.75,并创建一个带有 socket 的 View Controller 来处理不同的用户事件。

现在我想展示它。 如果我使用 presentModalViewController 会发生两件(不需要的)事情 1) View 覆盖整个屏幕(除了状态栏)。 2)它是半透明的,但我在它“后面”看到的不是父 View ,而是应用程序 Root View 。

我尝试将其添加为 subview ,但没有任何反应,所以我没有做正确的事情:

RestaurantContextVC* modalViewController = [[[RestaurantContextVC alloc] initWithNibName:@"RestaurantContextView" bundle:nil] autorelease];
[self.view addSubview:modalViewController.view];

可以做我想做的事吗? 提前致谢。

贡索

最佳答案

我正在编写类似的代码。我的方法包括......

  1. 不使用dismissModalViewControllerAnimated和presentModalViewController:animated。

  2. 在 IB 中设计自定义的全尺寸 View 。在其viewDidLoad消息体中,将背景颜色设置为clearColor,以便 View 上未被 Controller 覆盖的空间是透明的。

  3. 我在 float View 的 Controller 下放置了一个 UIImageView。 UIImageView 包含一个经过 Photoshop 处理的图像,该图像具有圆角且背景设置为透明。该 ImageView 用作容器。

  4. 我使用 CoreAnimation 来呈现/关闭模态视图样式中的 float View :(FloatingViewController.m)

    -  (void)viewDidLoad
    {
        [super viewDidLoad];
        [self.view setBackgroundColor:[UIColor clearColor]];
    
        [UIView beginAnimations:nil context:nil];
        [self.view setFrame:CGRectMake(0, 480, 320, 480)];
    
        [UIView setAnimationDuration:0.75f];
        [self.view setFrame:CGRectMake(0, 0, 320, 480)];
        [UIView commitAnimations];
    }
    

关于iPhone 模态视图比屏幕小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/915318/

相关文章:

iphone - CLLocationCoordinate2D 不知道数组中有多少?

iphone - 创建自定义键盘并在您的 iPhone 上配置它

objective-c - 在分割 View 中调用关闭模态视图 Controller 会导致旋转到纵向模式

ios - 如何在带导航栏的模态视图中更改 iOS 7 中的 UIStatusBarStyle?

iOS:在 iPad 模态视图中获取键盘点的顶部?

iphone - 如何使用 Game Center 仅使用 wifi 玩游戏?

iphone - 指针类型不兼容

java - 使用 Ajax 从 Spring Controller 加载 Modal 中的数据

linux - 在 Linux/X11 上的 Qt 中,如何解决主窗口排序问题?

javascript - 输入数据更改时,AngularJs 不会更新模型