Другие ответы верны, проблема в том, что i
будет идти один за концом массива, и это создаст вам проблемы. Это иллюстрация проблемы, которая может возникнуть при использовании циклов for для итерации по массиву; i
только случайно связан с массивом, по которому вы итерируете, и достаточно легко иметь проблемы, когда отношения, которые мы считаем , которые мы создаем между i
и массивом, не совсем то же самое, что мы создаем в коде.
По этой причине я бы рекомендовал использовать что-то вроде reduce
. Вы также можете использовать forEach
и следить за суммой, но reduce
на данный момент является лучшим вариантом для суммы, так как она предназначена для получения чего-то итерируемого и получения одного значения.
Вот как это может выглядеть:
class Polygon
{
constructor(sides)
{
this.sides = sides;
}
perimeter()
{
return this.sides.reduce((prev, curr) => prev + curr, 0);
}
}
const rectangle = new Polygon([10, 20, 10, 20]);
const square = new Polygon([10, 10, 10, 10]);
const pentagon = new Polygon([10, 20, 30, 40, 43]);
console.log(rectangle.perimeter());
console.log(square.perimeter());
console.log(pentagon.perimeter());
Исходный Ответ был заменен CoreAnimation в iOS4.
Таким образом, поскольку Золотой Ползунок говорит: можно сделать это путем доступа к CALayer UIVIEW. Конкретно его contentRect:
Из Документов Apple: прямоугольник, в координатном пространстве единицы, которое определяет часть содержания слоя, которое должно использоваться. Animatable.
Вы хотите отобразить изображение так, чтобы оно содержалось в UIImageView? В этом случае просто измените contectMode UIImageView к UIViewContentModeScaleToFill (если соотношение сторон несущественно), или UIViewContentModeScaleAspectFit (если Вы хотите поддержать соотношение сторон),
В IB это может быть сделано путем установки Режима в Инспекторе.
В коде это может быть сделано как
yourImageView.contentMode = UIViewContentModeScaleToFill;
В случае, если Вы хотите отобразить большое изображение, как в UIImageView, лучший и самый легкий способ сделать, это должно было бы иметь представление изображения в UIScrollView. То, что пути Вы сможете увеличить и уменьшить масштаб в изображении и также переместить его.
Надежда, которая помогает.
Это не кажется, что образец MoveMe делает что-либо как то, что Вы хотите. PlacardView в нем является тем же размером как используемое изображение. Единственный размер изменяется сделанный на него, представление, преобразовывают, который не производит область просмотра изображения. Насколько я понимаю Вы имеете большое изображение и хотите показать маленькую область просмотра в него. Нет простого метода класса сделать это, но существует функция, которую можно использовать для получения желаемых результатов: CGImageCreateWithImageInRect (CGImageRef, CGRect) выручит Вас.
Вот короткий пример с помощью него:
CGImageRef imageRef = CGImageCreateWithImageInRect([largeImage CGImage], cropRect);
[UIImageView setImage:[UIImage imageWithCGImage:imageRef]];
CGImageRelease(imageRef);
Большое спасибо. Я нашел довольно простое решение, которое похоже на это:
CGRect frameRect = myImage.frame;
CGPoint rectPoint = frameRect.origin;
CGFloat newXPos = rectPoint.x - 0.5f;
myImage.frame = CGRectMake(newXPos, 0.0f, myImage.frame.size.width, myImage.frame.size.height);
Я просто перемещаю кадр. Это происходит, что части того кадра выходят из порта представления iPhone, но я надеюсь, что это не будет иметь значения очень. Существует маска по нему, таким образом, это не выглядит странным. Пользователь не делает totice, как он сделан.