4つのエッジすべてのすべてのコーナーと中央に8つのサブビューを持つ1つの対角UIViewを作成しました。
すべての赤い点はドラッグして菱形のサイズを変更できます。
すべてのサブビューは、対角UIViewで1回追加されます。画像Screen1を参照してください。
ダイアモンドビューのパスフレームは必要ないので、中央と赤い点のフレームで管理できます。Autoresizemaskで管理する必要があるので、増減しながらすべての時間枠を通過する必要はありません。
ひし形の赤い点を作成するためのコードは次のとおりです。
view4 = [[CustomDotRD alloc] initWithFrame:CGRectMake(self.frame.size.width - self.frame.size.width/4 - RED_W_H_RD/2, self.frame.size.height - self.frame.size.height/4 - RED_W_H_RD/2, RED_W_H_RD, RED_W_H_RD)];
view4.backgroundColor = [UIColor clearColor];
UIPanGestureRecognizer *panGestureDiamond = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(singleFingerTapsDiamond:)];
[view4 addGestureRecognizer:panGestureDiamond];
[panGestureDiamond release];
[view4 setContextPropertyColor:RGB_RED contextFrame:CGRectMake(RED_W_H/2, RED_W_H/2, RED_W_H, RED_W_H) index:4 tag:kTAG_D4];
view4.autoresizingMask = UIViewAutoresizingFlexibleBottomMargin | UIViewAutoresizingFlexibleTopMargin | UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleRightMargin;
view4.center = CGPointMake(self.frame.size.width - self.frame.size.width/4, self.frame.size.height - self.frame.size.height/4);
[self addSubview:view4];
[self.boundDiamondArray addObject:view4];
ここでは、菱形を増やしながらいくつかの画像を投稿しました。いくつかの赤い点は奇妙な動作をします。
Screen2に表示されるすべての赤い点のすべての自動サイズ変更マスクのリストは次のとおりです。
1 - BottomMargin , LeftMargin , RightMargin
2 - TopMargin , BottomMargin , LeftMargin , RightMargin
3 - TopMargin , BottomMargin , LeftMargin
4 - TopMargin , BottomMargin , LeftMargin , RightMargin
5 - TopMargin , LeftMargin , RightMargin
6 - TopMargin , BottomMargin , LeftMargin , RightMargin
7 - TopMargin , BottomMargin , RightMargin
8 - TopMargin , BottomMargin , LeftMargin , RightMargin
4つの角の赤い点は正常に機能していますが、4つの中央の端の赤い点は完全には機能していません。いくつかの画面を表示できます。
この問題を解決するためのあなたのアイデアを教えてください。
AutoresizeMaskで管理するフレームやセンターを通過させたくないことを忘れないでください。。
AutoresizeMaskLinkを理解するのに役立つリンク。
よろしく、