2014년 7월 18일 금요일

UICollectionView 에서 orientation이변경할때 landscape, portrait에 따라서 cell 사이즈 자역스럽게 변경하기

1.  orientation이 바뀌었을때 새로운 layout을 변경 적용.

- (void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation duration:(NSTimeInterval)duration
{
...
    UICollectionViewFlowLayout *layout = [[UICollectionViewFlowLayout alloc] init];
    layout.scrollDirection = UICollectionViewScrollDirectionHorizontal;
    layout.minimumInteritemSpacing = 0.f;
    layout.minimumLineSpacing = 0.f;
    layout.sectionInset = UIEdgeInsetsZero;
    [self.collectionView setCollectionViewLayout:layout animated:YES];
    [_collectionView scrollToItemAtIndexPath:currentIndexPath             atScrollPosition:UICollectionViewScrollPositionCenteredHorizontally animated:NO];
}

2. UICollectionView delegate 에서 함수 사이즈 return

- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath
{
    if (UIInterfaceOrientationIsPortrait([[UIApplication sharedApplication] statusBarOrientation])) {
        return CGSizeMake(320.f, 180.f);
    }
    return CGSizeMake(568.f, 320.f);
}

2014년 7월 2일 수요일

UISlider 커스텀

이미지의 사이즈에 맞게 slider의 높이 및 thumb 이미지 교체, 및 slider 의 track을 이미지로 대체.



UIImage *minImage = [[UIImage imageNamed:@"slider_minimum.png"] resizableImageWithCapInsets:UIEdgeInsetsMake(0, 5, 0, 5)];
    UIImage *maxImage = [[UIImage imageNamed:@"slider_maximum.png"] resizableImageWithCapInsets:UIEdgeInsetsMake(0, 5, 0, 5)];
    UIImage *thumbImage = [UIImage imageNamed:@"sliderhandle.png"];
    
    [[UISlider appearance] setMaximumTrackImage:maxImage forState:UIControlStateNormal];
    [[UISlider appearance] setMinimumTrackImage:minImage forState:UIControlStateNormal];
    [[UISlider appearance] setThumbImage:thumbImage forState:UIControlStateNormal];