PaintCode сгенерированный код должен быть обернут в drawRect:
методом UIView
подкласса.
Вы также должны:
Импортируйте файл заголовка подкласса в UIViewController
, что вы, кажется, работает с, т.е. #import "OnScreenGraphics.h"
Создать экземпляр класса, например
// add a subview to fill the entire view; your requirements
// may be different, of course
OnScreenGraphics *fancyView = [[OnScreenGraphics alloc] initWithFrame:self.view.bounds];
[[self view] addSubview:fancyView];
Редактировать 2013-11-24 07-33-25
#import <UIKit/UIKit.h>
@interface OnScreenGraphics : UIView
@end
#import "OnScreenGraphics.h"
@implementation OnScreenGraphics
- (id)initWithFrame:(CGRect)frame {
self = [super initWithFrame:frame];
if(!self) return nil;
self.backgroundColor = [UIColor clearColor];
return self;
}
- (void)drawRect:(CGRect)rect{
UIBezierPath *roundedRectanglePath = [UIBezierPath bezierPathWithRoundedRect: CGRectMake(45.5, 89.5, 232, 273) cornerRadius:3];
[[UIColor clearColor] setFill];
[roundedRectanglePath fill];
[[UIColor blackColor] setStroke];
[roundedRectanglePath setLineWidth: 10];
[roundedRectanglePath stroke];
}
@end
And in your view controller implementation:
@implementation AKDMoreDetailViewController
- (void)viewDidLoad {
[super viewDidLoad];
OnScreenGraphics *fancyView = [[OnScreenGraphics alloc] initWithFrame:self.view.bounds];
[[self view] addSubview:fancyView];
}
// etc.
@end
Когда я выполнить это в тестовом проекте, я вижу:
Теперь, все это говорит о том, что подсвечивание подсветки, по-видимому, охватывает кнопку, которую вы хотите выделить; так что даже если вы можете увидеть кнопку, он может не реагировать на события нажатия, если не отключить взаимодействие с пользователем на этой точке зрения fancyView.userInteractionEnabled = NO;
Это было сделано в подклассе UIView? Была ли отображаемая часть иерархии представлений на экране? –
Не в подклассе, на виду контроллер, но я попробовал подклассифицировать его, по-прежнему не работает. –
'drawRect:' работает в режимах просмотра не в представлении. –