私が取り組んでいるアプリには、この目的のために取った緑色のフェルトの画像を並べた UIView があります。私が使っているタイリング以外にも
myView.backgroundColor = [UIColor colorWithPatternImage:backgroundImage];
ビューの境界の周りに境界線を置きます。
myView.layer.borderColor = [UIColor blackColor].CGColor;
myView.layer.borderWidth = solutionBackground.bounds.size.width / 120.0;
SO でここにある手法を使用して、ドロップ シャドウもビューに追加されます。
view.layer.shadowColor = [[UIColor blackColor] CGColor];
view.layer.shadowOpacity = 0.7;
view.layer.shadowRadius = 10.0;
view.layer.shadowOffset = CGSizeMake(5.0f, 5.0f);
view.layer.shadowPath = [UIBezierPath bezierPathWithRect:view.bounds].CGPath;
これが問題です。ほとんどの場合、見た目は問題ありません。ただし、タイル張りのフェルトが国境を越えて広がる場合もあります。ビューは通常、全画面の領域の約 90% であるため、境界線の幅は約 8 ポイントになります。この方法で適用された境界線は、クリッピングがない場合、境界の内側が 50%、境界の外側が 50% であると理解しています。では、タイル パターンが境界線を越えて拡張できるのはなぜでしょうか。これはバグですか?それとも、タイリングは、たとえば 8 ピクセルの倍数に制限されていますか? この出血の他の説明はありますか?
これがサンプルです。これは主に、ピンチ ジェスチャを使用してビューを拡大縮小するときに発生すると思います。ズーム中に背景と境界線が異なるスケールでレンダリングされるというタイミングの問題が発生する可能性はありますか?