好的,我已经完成了一百万次这样的事情,但是这个特殊情况让我感到厌烦,我确信它只是一些我想念的傻事......
但我试图在mapView上显示UIView,以给人留下mapview'禁用'的印象。
我创建了一个UIView子类并添加了一个标签。像这样...
.h
#import <UIKit/UIKit.h>
@interface DisabledOverlayView : UIView
@property (nonatomic, strong) UILabel *disabledOverlayViewText;
@end
没什么复杂的......
在我的.m中我设置了文本并将其添加到我的UIView中。
@synthesize disabledOverlayViewText = _disabledOverlayViewText;
- (id)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
self.backgroundColor = [UIColor blackColor];
self.alpha = 1;
_disabledOverlayViewText.textColor = [UIColor whiteColor];
_disabledOverlayViewText.frame = CGRectMake(0, 0, 200, 200);
// [_disabledOverlayViewText setCenter:self.center];
_disabledOverlayViewText.text = @"testing";
[self addSubview:_disabledOverlayViewText];
}
return self;
}
那么我希望使用这个叠加的课程,我称之为......
DisabledOverlayView *disabledView = [[DisabledOverlayView alloc] initWithFrame:CGRectMake(12, 12, _mapView.frame.size.width, _mapView.frame.size.height)];
disabledView.disabledOverlayViewText.text = @"No Location";
[self.view addSubview:disabledView];
这些都不太复杂......但标签没有显示出来。叠加层看起来很好,但没有标签文字。我已经搞砸了标签的框架,可能它是在可见的视图之外,但没有骰子。我无法弄清楚发生了什么。
答案 0 :(得分:1)
使用以下代码替换您的initWithFrame
方法。我添加了alloc init行并更改了label
的背景颜色。试一试,看它是否有效:)
- (id)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
self.backgroundColor = [UIColor blackColor];
self.alpha = 1;
_disabledOverlayViewText = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 200, 200)];
_disabledOverlayViewText.textColor = [UIColor whiteColor];
_disabledOverlayViewText.backgroundColor = [UIColor blackColor];
// [_disabledOverlayViewText setCenter:self.center];
_disabledOverlayViewText.text = @"testing";
[self.view addSubview:_disabledOverlayViewText];
}
答案 1 :(得分:0)
标签似乎没有分配,而且没有。
试试这个
(ID)initWithFrame:方法(的CGRect)帧 { self = [super initWithFrame:frame]; if(self){
self.backgroundColor = [UIColor blackColor]; self.alpha = 1;
self.disabledOverlayViewText = [[UILabel alloc] initWithFrame:CGRectMake(0,0,200,200)];
_disabledOverlayViewText.textColor = [UIColor whiteColor];
// [_disabledOverlayViewText setCenter:self.center];
_disabledOverlayViewText.text = @“testing”;
[self addSubview:_disabledOverlayViewText]; }