我已經創建了UIView
的mainView objcet,並在其上添加了一個子視圖。我在mainView上應用了變換來減小幀大小。但mainView的subview框架並未減少。如何減小這個子視圖的大小。如何在mainView上應用轉換後獲取子視圖的框架?
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
CGFloat widthM=1200.0;
CGFloat heightM=1800.0;
UIView *mainView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, widthM, heightM)];
mainView.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"te.png"]];
[self.view addSubview:mainView];
CGFloat yourDesiredWidth = 250.0;
CGFloat yourDesiredHeight = yourDesiredWidth *heightM/widthM;
CGAffineTransform scalingTransform;
scalingTransform = CGAffineTransformMakeScale(yourDesiredWidth/mainView.frame.size.width, yourDesiredHeight/mainView.frame.size.height);
mainView.transform = scalingTransform;
mainView.center = self.view.center;
NSLog(@"mainView:%@",mainView);
UIView *subMainView= [[UIView alloc] initWithFrame:CGRectMake(100, 100, 1000, 1200)];
subMainView.backgroundColor = [UIColor redColor];
[mainView addSubview:subMainView];
NSLog(@"subMainView:%@",subMainView);
}
的NSLog的這些觀點:
mainView:<UIView: 0x8878490; frame = (35 62.5; 250 375); transform = [0.208333, 0, 0, 0.208333, 0, 0]; layer = <CALayer: 0x8879140>>
subMainView:<UIView: 0x887b8c0; frame = (100 100; 1000 1200); layer = <CALayer: 0x887c160>>
這裏MAINVIEW的寬度爲250,子視圖的寬度是1000,但是當我得到模擬器的輸出,子視圖正確佔領,但它的不能跨越mainView。怎麼可能?轉換後如何獲得相對於mainView框架的子視圖框架?
它不適用於iOS 8 – 2015-07-20 20:26:11
在回答這個問題的時候,iOS 7幾乎沒有出現,從不知道iOS 8。接下來你會怎麼做?回答一個java問題的評論,它不能在C#中工作嗎?:) – micantox 2015-08-02 11:43:10
工作。好嚇人 – 2016-12-09 12:31:38