0

私は自分のアプリケーションが石に設定される前に開かれたかどうかを判断するためのコードを持っていると信じています:

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
BOOL didFirstLaunch = [defaults boolForKey:@"DidFirstLaunch"];
if (!didFirstLaunch) {
    [defaults setBool: YES forKey:@"DidFirstLaunch"];

    //Code for assembling overlay view
}

このコードをdidFinishLaunchingWithOptionsメソッドに入れました。

透明なオーバーレイビューでiPhone画面の3/4のみをカバーし、わずかに透明にして、アプリケーションのメインページの一部を引き続き表示できるようにします。画像とテキストがいくつか表示されます(基本的には単純です)。チュートリアル)。この性質の単純なビューを作成するにはどうすればよいですか?

4

2 に答える 2

4

コードをdidFinishLaunchingWithOptionsメソッドに配置する必要があります。

BOOL didFirstLaunch = [[NSUserDefaults standardUserDefaults] boolForKey:@"DidFirstLaunch"];

if (!didFirstLaunch) {

    [[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"DidFirstLaunch"];
    [[NSUserDefaults standardUserDefaults] synchronize];

    UIView *v = [[UIView alloc] initWithFrame:CGRectMake(0, 0, window.frame.size.width, window.frame.size.height)];
    //add some stuff to your transparent view. Example background color
    [v setBackgroundColor:[UIColor orangeColor]];

    // Finally set the alpha value
    [v setAlpha:0.3];
    [window addSubview:v];

}

それが役に立てば幸い。;)

于 2012-07-30T23:57:06.073 に答える
0

質問の透明なオーバーレイ部分について...

画面全体をオーバーレイするサブビューを作成してから、必要な部分を差し引くのが最も簡単だと思います。これが役立つかもしれないいくつかのSwiftコードです:

// Create a view filling the screen.
let overlay = UIView(frame: CGRectMake(0, 0, 
    UIScreen.mainScreen().bounds.width,
    UIScreen.mainScreen().bounds.height))

// Set a semi-transparent, black background.
overlay.backgroundColor = UIColor(red: 0, green: 0, blue: 0, alpha: 0.85)

// Create the initial layer from the view bounds.
let maskLayer = CAShapeLayer()
maskLayer.frame = overlay.bounds
maskLayer.fillColor = UIColor.blackColor().CGColor

// Create the frame for the portion that you want to remove. 
// You could get this from a container view that holds all of 
// the subviews that you want to see behind the overlay.
let rect = CGRectMake(50, 50, 100, 100)

// Create the path.
let path = UIBezierPath(rect: overlay.bounds)
maskLayer.fillRule = kCAFillRuleEvenOdd

// Append the rectangle to the path so that it is subtracted.
path.appendPath(UIBezierPath(rect: rect))
maskLayer.path = path.CGPath

// Set the mask of the view.
overlay.layer.mask = maskLayer

// Add the view so it is visible.
self.view.addSubview(overlay)

上記のコードの動作は次のとおりです。

ここに画像の説明を入力してください

私はCocoaPodsにライブラリを追加しました。これにより、長方形/円形の穴のある半透明のオーバーレイを作成して、ユーザーがオーバーレイの背後にあるビューを操作できるようになります。これを使用して、アプリの1つでこのチュートリアルを作成しました。

TAOverlayViewを使用したチュートリアル

ライブラリはTAOverlayViewと呼ばれ、 Apache2.0ではオープンソースです。

于 2016-03-15T15:06:03.110 に答える