在iOS 8上添加子视图到SDCAlertView是否正常工作?

时间:2014-09-12 19:21:24

标签: ios8 sdcalertview

我在我的项目中使用了一个SDCAlertView实例,在警报中添加一个UITextView来做一些facebook帖子。它似乎在ios8上不再正常工作。

我使用了以下代码。

SDCAlertView *alert = [[SDCAlertView alloc] initWithTitle:@"Post To Facebook"
                                                      message:@""
                                                     delegate:nil
                                            cancelButtonTitle:@"Cancel"
                                            otherButtonTitles:@"Post", nil];
    UITextView *textView = [[UITextView alloc] init];
    [textView setTranslatesAutoresizingMaskIntoConstraints:NO];
    [textView setEditable:YES];
    textView.autocorrectionType = UITextAutocorrectionTypeNo;
    [alert.contentView addSubview:textView];
    [textView sdc_pinWidthToWidthOfView:alert.contentView offset:-5];
    [textView sdc_pinHeight:120];
    [textView sdc_horizontallyCenterInSuperview];
    [textView sdc_verticallyCenterInSuperviewWithOffset:SDCAutoLayoutStandardSiblingDistance];
    [alert showWithDismissHandler: ^(NSInteger buttonIndex) {
        NSLog(@"Tapped button: %@", @(buttonIndex));
        if (buttonIndex == 1) {
            NSLog(@"POST %@", textView.text);
        }
        else {
            NSLog(@"Cancelled");
        }
    }];

iOS 7上的结果 enter image description here

iOS 8 GM的结果 enter image description here

如果我可以通过代码中的某些更改来解决此问题,请告诉我。

1 个答案:

答案 0 :(得分:1)

我设法通过替换以下行来解决此问题

  [textView sdc_verticallyCenterInSuperviewWithOffset:SDCAutoLayoutStandardSiblingDistance];

以下内容:

[alert.contentView sdc_pinHeight:120 + SDCAutoLayoutStandardSiblingDistance];
[textView sdc_alignEdgesWithSuperview:UIRectEdgeTop insets:UIEdgeInsetsMake(SDCAutoLayoutStandardSiblingDistance, 0, 0, 0)];

如果有人想要详细介绍此讨论,请访问以下链接 https://github.com/sberrevoets/SDCAlertView/issues/49