1

わかりました、私はこの種のことを何百万回も行いましたが、この特定のケースは私を逃れ、私が見逃しているのは愚かなことだと確信しています...

しかし、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];

これはどれも複雑すぎません。しかし、ラベルは表示されません。オーバーレイは問題なく表示されますが、ラベルテキストは表示されません。私はラベルのフレームをいじりましたが、おそらくそれは目に見える視界から外れていましたが、サイコロはありませんでした。そして、私は何が起こっているのか理解できません。

4

2 に答える 2

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];

}
于 2013-02-18T17:09:28.570 に答える
0

ラベルが割り当てられていないようで、nilです。

これを試して

  • (id)initWithFrame:(CGRect)frame {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]; }

于 2013-02-18T17:13:23.633 に答える