2017-09-22 345 views
0

最有可能我做了很多混亂的這麼多小時的工作後,但我不明白這是怎麼回事...故事板Vs的模擬器沒有約束應用於

在照片中,我告訴你下面你可以看故事板lamm。橙色箭頭表示我正在使用iPhone SE,而我的模擬器是iPhone SE和iPhone 8 plus。

正如您所看到的,儘管我已經設置了約束條件,但兩個模擬器有兩個不同的視圖。 enter image description here

enter image description here

的UIImageView上有一個漸變的效果,如果我帶的UIImageView完美旁觀,即使我的工作故事板IPHONE我的所有設備。我不明白爲什麼這可以幫助我?

我還告訴你了UIImageView的代碼

- (void)viewDidLoad { 
[super viewDidLoad]; 
CAGradientLayer *gradientMask = [CAGradientLayer layer]; 
gradientMask.frame = _images.bounds; 
gradientMask.colors = @[(id)[UIColor whiteColor].CGColor, 
         (id)[UIColor clearColor].CGColor]; 

_images.layer.mask = gradientMask; 

gradientMask.startPoint = CGPointMake(0.8, 0.0); 
gradientMask.endPoint = CGPointMake(0.8, 0.8); 

gradientMask.colors = @[(id)[UIColor clearColor].CGColor, 
         (id)[UIColor whiteColor].CGColor, 
         (id)[UIColor whiteColor].CGColor, 
         (id)[UIColor clearColor].CGColor]; 
gradientMask.locations = @[@0.0, @0.0, @0.8, @1.0]; 

_images.contentMode = UIViewContentModeScaleAspectFill; 

UIBlurEffect *effect = [UIBlurEffect effectWithStyle:UIBlurEffectStyleLight]; 
UIVisualEffectView *blur = [[UIVisualEffectView alloc] initWithEffect:effect]; 
blur.frame = CGRectMake(_images.frame.origin.x, _images.frame.origin.y, _images.frame.size.width, _images.frame.size.height +50); 
[_images addSubview:blur]; 

[UIView animateWithDuration:.1 animations:^{ 
    blur.alpha = .7; 
}]; 

}

+0

你應該也顯示約束,看起來像那些問題 –

+0

只是我或你只是設置高度和寬度,而不是將錨定在兩側? –

+0

@MilanNosáľ我編輯了我的帖子 – kAiN

回答

2

要調用:

gradientMask.frame = _images.bounds; 
viewDidLoad()

。此時,自動佈局尚未佈置所有視圖,因此您的_images.bounds與您在Storyboard中的內容相符。

結果是圖像視圖的右側是被遮蓋掉,因爲漸變圖層沒有覆蓋它。

您需要可以移動漸變面具製作/後自動佈局大小到一個點完成,或者,我會建議,被繼承UIImageView添加漸變面具出現,並使其自動調整它在layoutSubviews()

編輯:作爲一個附註,你不應該把視圖動畫放在viewDidLoad() - 很可能你甚至不會看到它。

+0

其實這個問題就是這個!非常感謝...我仍然需要一點幫助,我的uicollectionview ..單元不正確地響應各種設備之間的collectionView Flow佈局衝動,我認爲這總是一個約束問題..我只是看到它的iPhone SE我怎樣才能解決這個問題? – kAiN

-2

試試這個....

1.首先選擇u需要哪個電話,如果u需要iPhone 8,然後選擇MainStoryboard的模擬器iPhone 8和下方有一個選項來選擇手機的方向,然後選擇視圖iPhone 8. 2.在ViewController中放置圖像 3.然後在Xcode的一側選擇圖像,然後選擇自動調整選項水平和垂直線(勾選)。

然後運行你會得到正確的看法。