다른 UIScrollView 및 UITableView에 여러 그라디언트를 추가하려고합니다. 내가 건너 한이를 달성하는 방법의 가장 일반적인 예는 그가 여기 그라디언트를 사용하는 방법의 예를 게시 매트 Galagher의 멋진 블로그에서입니다 :스크롤 뷰에 그라디언트를 추가하는 방법은 무엇입니까?
http://cocoawithlove.com/2009/08/adding-shadow-effects-to-uitableview.html
내 질문하지만 장점/혜택이하는 일입니다 layoutSubviews 메서드에 그라데이션을 삽입하고 viewDidLoad 메서드에 그라데이션을 설정하여 얻을 수 있습니까? viewDidLoad 라우트로 방향을 변경하면 뷰를 수동으로 업데이트해야하지만 뷰가로드 될 때만이 메서드를 호출하고 방향이 변경 될 때 다시 호출하는 것은 성능 관점에서 보일 것이라고 생각합니다. 반대로 layoutSubviews 메서드는 매번 스크롤 뷰/테이블 뷰의 경우 많은 뷰 변경 사항을 호출합니다!
//
// Construct the origin shadow if needed
//
if (!originShadow)
{
originShadow = [self shadowAsInverse:NO];
[self.layer insertSublayer:originShadow atIndex:0];
}
else if (![[self.layer.sublayers objectAtIndex:0] isEqual:originShadow])
{
[self.layer insertSublayer:originShadow atIndex:0];
}
[CATransaction begin];
[CATransaction setValue:(id)kCFBooleanTrue forKey:kCATransactionDisableActions];
//
// Stretch and place the origin shadow
//
CGRect originShadowFrame = originShadow.frame;
originShadowFrame.size.width = self.frame.size.width;
originShadowFrame.origin.y = self.contentOffset.y;
originShadow.frame = originShadowFrame;
[CATransaction commit];
그는 또한 메서드가 호출 될 때마다 프레임의 크기를 조정하는 것처럼 보입니까? viewDidLoad 메서드에서 그래디언트의 크기를 초기화하고 크기를 조정 한 다음 오리엔테이션이 변경되면 크기를 조정하는 것이 좋을까요?
메신저가 여기에 무엇인가 놓치면 확실하게 해줄 수 있습니다.
Thx
안녕하세요, 응답은 thx입니다. 나는 이미 scrollview가 위에 놓여 있다는 backing view를 가지고 있기 때문에 viewDidLoad 메서드의 하단보기에 그라디언트를 추가했다. 왜 내가 그라디언트의 크기를 조정해야 viewSubviews에서 제안 된대로 그냥 수동으로 그라디언트의 크기를 조정하려면 메서드를 호출 할 때 내 viewcontroller에서 방향 변경을 받으면 변경해야합니까? – HenryH
원하는 경우 방향 변경시 크기를 조정할 수 있습니다. layoutSubviews는 글쎄, 레이아웃을 위해 설계된 것인데, 당신이하고있는 일이긴하지만, 오리엔테이션 변경 방법에서 그렇게하는 것도 좋습니다. 내가 건너려고했던 더 큰 관심사는 layoutSubviews에서 다시 작성하면 안된다는 것입니다. –