У меня две проблемы с UIButton и UIView - PullRequest
1 голос
/ 10 апреля 2010

Я давно не программирую на iPhone, но медленно поднимаю его из-за проблем с поиском в Google. К сожалению, я не смог найти ответ на эти вопросы.

Я запустил новое приложение на основе View в Xcode 3.2.2 и сразу добавил следующие файлы: myUIView.m и myUIView.h, которые являются подклассами UIView. В Интерфейсном Разработчике я установил для подкласса UIView по умолчанию значение myUIView.

Я сделал кнопку в методе drawRect.

Проблема первая: Название кнопки появляется только ПОСЛЕ того, как я нажимаю на экран, почему?

Проблема вторая: Я хочу, чтобы кнопка производила модальный обзор - это возможно?

Код выглядит следующим образом:

#import "myUIView.h"
@implementation myUIView
- (void)drawRect:(CGRect)rect {
// Drawing code
    button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
    button.frame = CGRectMake(0,0,100,100);
    [button setTitle:@"butty" forState:UIControlStateNormal];
    [button addTarget:self action:@selector(buttonPressed:) forControlEvents:UIControlEventTouchUpInside];
    [self addSubview:button];
}

-(void)buttonPressed:(id)sender{
    NSLog(@"Button pressed");
    //present modal view somehow..?
}

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

Большое спасибо, Andy

1 Ответ

1 голос
/ 10 апреля 2010

drawRect: для нестандартного рисунка. Вам не часто придется делать это. Ваша кнопка не будет отрисована до тех пор, пока она не будет отправлена ​​drawRect:, вероятно, в следующей итерации цикла выполнения (т. Е. При нажатии на представление).

Если вам нужна кнопка на вашем виде, либо перетащите ее туда, используя IB, или переместите код с drawRect: на viewDidLoad.

Вы представляете модальное представление из контроллера представления:

[self presentModalViewController:viewController animated:YES];

Сделайте это в методе действий, который ваша кнопка отправляет вашему контроллеру представления. Это должно указывать на то, что вам нужно взглянуть на дизайн вашего приложения.

...