Как установить фоновое изображение для представления UIAlert в iPhone? - PullRequest
0 голосов
/ 11 февраля 2011

Я хочу установить пользовательское изображение в качестве фона для просмотра предупреждений. Если я установил размер рамки просмотра изображения как статический, то он будет отображаться правильно.Но я передал, что содержимое сообщения отображается динамически, поэтому иногда содержимое маленькое, а иногда приходит огромное количество данных, отображаемых в представлении предупреждений. Как я могу установить размер кадра представления изображения, который зависит от кадра представления предупрежденияразмер.

Вот мой пример кода,

   UIAlertView *notesAlert = [[UIAlertView alloc] initWithTitle:@"" message:notes delegate:self cancelButtonTitle:@"Close" otherButtonTitles:nil];

   UIImage *alertBoxImage = [UIImage imageNamed:@"AlertViewBG.png"];

   UIImageView *_backgroundImageView = [[UIImageView alloc] initWithImage:alertBoxImage];

   _backgroundImageView.frame = CGRectMake(0, 0, 282, 130);

   _backgroundImageView.contentMode = UIViewContentModeScaleToFill;

   [notesAlert addSubview:_backgroundImageView];

   [notesAlert sendSubviewToBack:_backgroundImageView]; 

   NSLog(@"The Alert view frame height %f and width %f", notesAlert.frame.size.height, notesAlert.frame.size.width); 

     // height 0.000000 and width 0.000000

   [notesAlert show]; 

   NSLog(@"After showing the Alert view frame height %f and width %f", notesAlert.frame.size.height, notesAlert.frame.size.width); 

    // height 173.800003 and width 312.399994

посмотрите мой снимок экрана:

image

Так как установить размер кадра изображения, который зависитв окне просмотра предупреждений?Пожалуйста, помогите мне.Спасибо.

Ответы [ 4 ]

0 голосов
/ 28 декабря 2012

Вы должны использовать подкласс UIAlertView, в котором переопределяются следующие методы ...

- (void)drawRect:(CGRect)rect
{   
    UIImage *alertBoxImage = [UIImage imageNamed:@"AlertViewBG.png"];
    CGSize imageSize = alertBoxImage.size;
    [self.imgBackground drawInRect:CGRectMake(0, 0, imageSize.width, imageSize.height)];
}

Чтобы скрыть фоновое изображение UIAlertView по умолчанию, как показано на снимке экрана

- (void)didAddSubview:(UIView *)subview
{
    if ([subview isMemberOfClass:[UIImageView class]])
    {
        [subview removeFromSuperview];
    }
}
0 голосов
/ 09 мая 2011

Вы можете установить фрейм для UIAlertView в его методе делегата alertviewwillappear для фрейма uiimageview.или вы можете использовать UIPopoverController и добавить для этого bgimage.

0 голосов
/ 14 февраля 2012

См. Пример предупреждения WordPress, http://ios.trac.wordpress.org/browser/trunk/Classes/WPProgressHUD.m

0 голосов
/ 11 февраля 2011

Вы пробовали это:

_backgroundImageView.frame = notesAlert.frame;
...