에 대한 위임 문제가 있으므로 탐색 컨트롤러가 있고 그 안에보기 및 해당보기에 포함 된 scrollview가 있습니다. 내 목표는 내 프로그램을 가까이에있을 때 위치로 스크롤하는 것입니다. 이 작업을 수행하려면 vc에 아웃렛에 추가해야합니다. 하나는 스크롤보기이고 다른 하나는보기입니다. 보기는 아이폰 화면의 약 두 배에 해당하는 약간 큰 직사각형이며 조금 더 높습니다. 내 스크롤보기는 단지 수평으로 만 스크롤되며, 스크롤 할 때마다 손가락을 들어 올리면 내 목표는 아이폰 범위가 뷰 범위 내에 있는지입니다. 스크롤 뷰가 수동으로 해당 뷰의 중간으로 스크롤되기를 원합니다. (화가 나는 새에서 게임 메뉴를 생각하거나 밧줄을자를 수있는 경우, 사용자가 레벨 팩 사이를 수평 적으로 스크롤 할 때, 사용자가 스크롤 할 때 스크롤을 해제하여 사용자가지나 가게하는 레벨로 이동하면이 내가 흉내 내고 싶은 것).내 탐색 컨트롤러
내 코드와 내 VC 모두에 대한 heres heres. 스토리 보드에서 내가 한 유일한 이유는 두 개의 콘센트를 연결하고 내보기의 크기를 설정했기 때문입니다.
(레벨 팩은 vc이고 다른 하나는보기입니다.)
#import <UIKit/UIKit.h>
#import "HorizantalLockingView.h"
@interface LevelPacks : UIViewController <ViewDelegate>
@property (weak, nonatomic) IBOutlet UIScrollView *scrollView;
@property (weak, nonatomic) IBOutlet HorizantalLockingView *lockingView;
@end
#import "LevelPacks.h"
@implementation LevelPacks
@synthesize scrollView=_scrollView;
@synthesize lockingView = _lockingView;
-(void)viewDidAppear:(BOOL)animated
{
CGSize size;
size.width=825;
size.height=460;
self.scrollView.contentSize=size;
self.scrollView.contentOffset=CGPointMake(0, 0);
}
-(void)viewDidLoad
{
[super viewDidLoad];
self.lockingView.delegate=self;
}
- (void)viewDidUnload
{
[self setLockingView:nil];
[super viewDidUnload];
self.scrollView=nil;
// Release any retained subviews of the main view.
}
@end
#import <UIKit/UIKit.h>
@protocol ViewDelegate
@property (nonatomic, weak) UIScrollView *scrollView;
@end
@interface HorizantalLockingView : UIView
@property (nonatomic, weak) IBOutlet id <ViewDelegate> delegate;
@end
#import "HorizantalLockingView.h"
@implementation HorizantalLockingView
@synthesize delegate=_delegate;
- (id)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
// Initialization code
}
return self;
}
-(void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
{
CGRect location=self.superview.bounds;
NSLog(@"dkfjdkjf");
if (CGRectContainsRect(self.frame, location))
{
[self.delegate.scrollView scrollRectToVisible:CGRectMake(284, 190, 157, 119) animated:YES];
}
}
@end
오, 나는 방법도 아무것도 할 것입니다 있는지 확인하기 위해 nslog 이전했다, 그리고 nslog은 심지어 분명히 잘못된 일도, 실행하지 마십시오.
이런 종류의 새로운 것들은 어떤 도움이 정말 좋을 것입니다!
그것은 나에게 좋은 것 같다 (비록 장기적으로 사용하면 스케치 조금). 'userInteractionEnabled'가 제대로 설정되지 않았을 가능성이 있습니까? (또한 UIScrollview를 서브 클래 싱하여이 위임 된 말도 안되는 것을 생각 해보았습니까?) – CodaFi
시도 했습니까? 스크롤보기에서 페이징을 사용하도록 설정 했습니까? 자동으로 수행합니다. –
@jammycoder 멋진 경로가 그 길로갑니다! – bmende