Что contentOffset делает в UIScrollView?

Вы можете использовать reduce для обхода массива и сохранения набора ключей (number), чтобы проверить, существует ли он. Затем вставьте новый массив.

var data=[
    { number: '31907411282', unix_date: '1547012427' },
    { number: '31907411282', unix_date: '1547013214' },
    { number: '31907514691', unix_date: '1547015155' },
    { number: '31907514691', unix_date: '1547015232' },
    { number: '31907514691', unix_date: '1547016134' },
    { number: '31907514691', unix_date: '1547016443' },
    { number: '31907638716', unix_date: '1547017122' },
    { number: '31907644067', unix_date: '1547017381' }
]
const rs = data.reduce((acc, e) => {
  if(!acc.number.has(e.number)) {
    acc.newData.push(e)
    acc.number.add(e.number)
  }
  return acc
}, {number: new Set(), newData: []})

console.log(rs.newData)

56
задан Akash 16 May 2014 в 02:33
поделиться

2 ответа

Согласно документации , свойство contentOffset представляет:

Точку, в которой происхождение представление содержимого смещено от источника прокрутки.

Проще говоря, это то, как далеко вид переместился в каждом направлении (вертикальном и горизонтальном). Вы можете распаковать вертикальное и горизонтальное расстояние, открыв свойства x и y в CGPoint :

CGFloat xOffset = _myScrollView.contentOffset.x;
CGFloat yOffset = _myScrollView.contentOffset.y;
53
ответ дан 26 November 2019 в 17:11
поделиться

enter image description here

Здесь Вы видите два прямоугольника:

  • видимая область
  • общая площадь

Прокрутка изменяет источник видимой области в общей площади.

iOS In всем представлениям представили видимую область view.bounds прямоугольник. Класс UIScrollView является представлением с уникальным свойством: это имеет второй прямоугольник, названный “content view” с размером, больше, чем его границы. Таким образом, в представлении прокрутки:

  • видимая область scrollView.bounds
  • , общую площадь называют представление содержания , чей размер scrollView.contentSize

contentOffset, другое название scrollView.bounds.origin, реализованный следующим образом:

var contentOffset: CGPoint { 
    get { return bounds.origin }
    set {
        var bounds = self.bounds
        bounds.origin = newValue
        self.bounds = bounds
    }   
}

, Когда мы перетаскиваем представление прокрутки, наш палец изменяет значение contentOffset (иначе bounds.origin), который заставляет другую область довольного представление быть представленной. Это то, как иллюзия прокрутки работ.

в официальной документации говорится это как это (курсивы являются моими):

contentoffset : точка, в которой источник довольного представление (общая площадь) смещается от источника представления прокрутки (видимая область) .

1
ответ дан 26 November 2019 в 17:11
поделиться
Другие вопросы по тегам:

Похожие вопросы: