2017-09-22 10 views
0

내가 당신보다 당신을 보여 그 사진에서스토리 보드 대 시뮬레이터는 어떤 제약 조건 적용되지

... 나는 일의 많은 시간 후에 혼란을 많이하고 있어요하지만 난 무슨 일이 일어나고 있는지 이해하지 가능성이 가장 높은 수 storyboard lamm을보십시오. 주황색 화살표는 시뮬레이터가 iPhone SE 및 iPhone 8 plus 인 동안 iPhone SE에서 작업 중임을 나타냅니다.

두 개의 시뮬레이터에는 제약 조건을 넣었지만 두 개의 다른보기가 있습니다. 이 도울 수있는 이유가있는 UIImageView 나는 스토리 보드 아이폰 I에서 일하고 있어요에도 불구하고 모든 장치에서 완벽하게 볼 걸릴 경우 enter image description here

enter image description here

있는 UIImageView, 그것은에 그라데이션 효과가 .. 이해가 안 돼요 나를? viewDidLoad()에서

gradientMask.frame = _images.bounds; 

:

는 또한 당신에게있는 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

그냥 나 또는 u는 단지 양쪽에 앵커를 배치하는 대신 높이와 너비를 설정합니까? –

+0

@ MilanNosáľ 내가 내 게시물을 편집했습니다. – kAiN

답변

2

당신은 호출을 보여줍니다. 이 시점에서 자동 레이아웃은 모든보기를 아직 레이아웃하지 않았으므로 _images.bounds은 스토리 보드에있는 것과 일치합니다.

결과적으로 그라디언트 레이어가 덮지 않으므로 이미지 뷰의 오른쪽이 인데으로 마스크 처리됩니다.

당신은 내가 권하고 싶습니다 무엇인지, 거기에 그라데이션 마스크를 추가 UIImageView의 서브 클래스입니다 자동 레이아웃 후 포인트 에 크기/그라데이션 마스크 만들기를 이동하거나 완료, 또는해야하고, 그것을 자동이

layoutSubviews()에서 크기를 조정하십시오.

편집 : 보조 메모로 viewDidLoad()에보기 애니메이션을 삽입하면 안됩니다. 대부분보기에는 볼 수 없을 것입니다.

+0

사실 문제는 바로 이것입니다! 고마워요 ... 난 여전히 내 uicollectionview와 약간의 도움이 필요합니다 .. 셀은 정확하게 다양한 제품 사이의 collectionView 흐름 레이아웃 충동에 응답하지 않습니다, 나는 그것이 항상 제약 문제라고 생각 .. 난 그냥 아이폰 SE를 참조하십시오 이 문제를 어떻게 해결할 수 있습니까? – kAiN

-2

이 시도 ....

u는 다음 MainStoryboard의 시뮬레이터 아이폰 8 이하를 다음 전화 방향을 선택하는 옵션이되어 선택의 아이폰 8 필요한 경우 유, 필요로하는 전화를 선택 1.first view iPhone 8을 선택하십시오. 2. ViewController에서 이미지를 삽입하십시오. 3. Xcode의 측면에서 이미지를 선택한 다음 자동 크기 조정 옵션에서 수평선과 수직선을 선택하십시오.

그러면 올바른보기가 실행됩니다.