Есть ли способ найти endpoint
экрана? Скажем, экран размера (100x100) имеет среднюю точку (50) и начальную точку (0), а конечную точку - как (100,). Я могу жестко кодировать, чтобы получить конечную точку на основе размера экрана устройства, но это будет слишком много работы, основанной на предположениях.Как получить конец CGPoint экрана?
Я делаю обычай UIView
анимацией на основе UIBezierPath
.
Вот что я пытаюсь сделать:
Как вы можете видеть, что анимация останавливается после того, как он достигнет некоторого point.And я хочу этот пункт будет конец экрана, так это UIView
б/у полностью screen
. Чтобы быть более ясным, я перетащить UIView
в точку А, и это оживляет в точку Б (конечную точку, так что B> A)
Я не знаю, как вычислить B, так что, когда я тащу UIView
А, он оживляет до конца экрана (конечная точка экрана).
Вот код, чтобы получить лучшее понимание:
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
{
UITouch *touch = [[event allTouches] anyObject];
CGPoint touchLocation = [touch locationInView:self.dragView];
if (touchLocation.x<250) {
if (!startBackSlide) {
_circleDragView.touchdragPoint=touchLocation.y;
_circleDragView.dragToPoint=CGPointMake(touchLocation.x+40, touchLocation.y);
[_circleDragView setNeedsDisplay];
_savedPoint=touchLocation;
}else{
//move the top and bot points backwards along with slide
[self animateCOmpleteBezier:touchLocation];
_circleDragView.touchdragPoint=touchLocation.y;
_circleDragView.dragToPoint=CGPointMake(touchLocation.x+54, touchLocation.y);
[_circleDragView setNeedsDisplay];
_savedPoint=touchLocation;
if (touchLocation.x<20) {
startBackSlide=NO;
snapped=YES;
}
}
}
if (touchLocation.x>=250) {
if (snapped) {
snapped=NO;
//move the top and bottom points to the specified point(In this case the end point)
}
}
}
-(void)animateCOmpleteBezier:(CGPoint) value{
[UIView animateWithDuration:0.01 delay:0 options:UIViewAnimationOptionCurveEaseOut animations:^{
_circleDragView.topWidthPoint=value.x-10;
_circleDragView.botWidthPoint=value.x-10;
[_circleDragView setNeedsDisplay];
} completion:^(BOOL finished) {
}];
}
Не уверен, что именно то, что вы просите , вы хотите просто получить размер экрана устройства? – luk2302
нет, как вы видите в gif, я перетаскиваю точку зрения до точки 100 и поднимаю палец вверх, затем я ожидаю, что анимация переместит представление мимо точки 100, а в конце анимация должна сделать обложку вида весь экран, я имею в виду, что представление нужно перетащить в конец экрана. –
Вы можете попробовать использовать свойство рамки родительского представления. Или подходите к UIWindow. Или используйте ['UIScreen mainScreen'] (https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIScreen_Class/index.html#//apple_ref/occ/clm/UIScreen/mainScreen). –