На iPhone 4 элементы управления выглядят хорошо, а на iPhone 3GS - плохо, почему? - PullRequest
0 голосов
/ 01 августа 2011

В моем приложении у меня есть вид, который появляется над текущим видом, чтобы помочь пользователю, если это необходимо.Проблема заключается в следующем: на iPhone 4 кнопка закрытия этого представления выглядит хорошо, в то время как на iPhone 3GS она имеет небольшой выпуклость над ним.Понятия не имею почему.То же самое происходит с флажком.

Вот изображения в альбоме Picasa (есть 2 изображения, одно из которых называется iPhone 3GS, а другое iPhone 4, см. Выпуклости над кнопкой закрытия и флажок в iPhoneКартинка 3GS).

https://picasaweb.google.com/103964563927969565521/StackoverflowPosts?authkey=Gv1sRgCKWHu6mKj4OS5AE

Этот код используется для создания кнопки закрытия:

// Close button
    closeButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];

    float xCor = self.frame.size.width - kViewMargins - kCloseButtonWidth;
    float yCor = y + ((self.frame.size.height - y) / 2 - kCloseButtonHeight / 2);

    closeButton.frame = CGRectMake(xCor,
                                   yCor,
                                   kCloseButtonWidth,
                                   kCloseButtonHeight);  

    [closeButton setTitle:kClose forState:UIControlStateNormal];
    [closeButton setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
    [[closeButton titleLabel] setFont:[UIFont boldSystemFontOfSize:kQuickTipTitleFontSize]];
    [closeButton setBackgroundImage:[UIImage imageNamed:@"close_button.png"] forState:UIControlStateNormal]; 
    [closeButton addTarget:self action: @selector (doneButtonClick)  forControlEvents: UIControlEventTouchUpInside]; 
    [self addSubview:closeButton];

Я не знаю, что делать, пожалуйста, помогите.

Спасибо, Шауль.

Ответы [ 3 ]

0 голосов
/ 02 августа 2011

Хм, похоже, что рисунок RoundRect по умолчанию истекает из-за вашей графики, как сказал Джон. Вместо того чтобы возиться с графикой, я бы порекомендовал изменить тип кнопки на UIButtonTypeCustom :

closeButton = [UIButton buttonWithType:UIButtonTypeCustom];

Это создаст кнопку без элементов пользовательского интерфейса за пределами установленного вами графического объекта и текста.

0 голосов
/ 02 августа 2011
closeButton = [UIButton buttonWithType:UIButtonTypeCustom];
UIImage* closeImage = [UIImage imageNamed:@"close_button.png"];
float xCor = self.frame.size.width - kViewMargins - kCloseButtonWidth;
float yCor = y + ((self.frame.size.height - y) / 2 - kCloseButtonHeight / 2);

closeButton.frame = CGRectMake(xCor,
                               yCor,
                               closeImage.size.width/2,
                               closeImage.Size.height/2);  

[closeButton setTitle:kClose forState:UIControlStateNormal];
[closeButton setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
[[closeButton titleLabel] setFont:[UIFont boldSystemFontOfSize:kQuickTipTitleFontSize]];
[closeButton setBackgroundImage:closeImage  forState:UIControlStateNormal]; 
[closeButton addTarget:self action: @selector (doneButtonClick)  forControlEvents: UIControlEventTouchUpInside]; 
[self addSubview:closeButton];
[closeButton release]; /// you must release the closeButton
0 голосов
/ 01 августа 2011

Я размышляю, потому что я не вижу ваши файлы close_button.png, но я думаю, что проблема в том, что ваш close_button.png и создаваемая кнопка имеют разные размеры, и изображение, которое вы видите, является чертежом по умолчанию. круглой прямоугольной кнопки.

...