У меня есть javascript функция
function relativeTime(time) {
var period = new Date(time);
var delta = new Date() - period;
if (delta <= 10000) { // Less than 10 seconds ago
return 'Just now';
}
var units = null;
var conversions = {
millisecond: 1, // ms -> ms
second: 1000, // ms -> sec
minute: 60, // sec -> min
hour: 60, // min -> hour
day: 24, // hour -> day
month: 30, // day -> month (roughly)
year: 12 // month -> year
};
for (var key in conversions) {
if (delta < conversions[key]) {
break;
}
else {
units = key;
delta = delta / conversions[key];
}
}
// Pluralize if necessary:
delta = Math.floor(delta);
if (delta !== 1) { units += 's'; }
return [delta, units, "ago"].join(' ');
}
, которые дают относительную разницу во времени, как комментарий Facebook.
Как назвать эту функцию в моем представлении. Я использую mvc3. я получаю время из базы данных, например,
<span>
@item.wallTimeStamp
</span>
вместо того, что я хочу вызвать функцию javascript,
у меня есть тэг
<span>
//call javascript function that will display time difference in this tag
</span>
как я могу это сделать?
-121--751218-Мой UIScrollView заполняется большим содержимым, а затем масштабируется с помощью «setZoomScale: animated», так что он помещается в кадр прокрутки. Вид отображается правильно увеличенным и правильно позиционированным в режиме прокрутки. Однако пользователь может выполнять прокрутку вне содержимого (цвет фона прокрутки отображается). Кажется, что он может прокручивать до первоначального размера контента (как будто контент не был увеличен). Как ни странно, после того, как пользователь увеличивает масштаб вручную в первый раз, все работает нормально, и вид прокрутки снова ограничивается размером содержимого.
Я искал в Интернете и просмотрел документы и примеры Apple, но не смог найти никого с той же проблемой. Примеры Apple показывают то же самое, что и я.
Мое содержимое - это настраиваемое представление, производное от UIView, и CALayer которого заменяется CATiledLayer (как в примерах Apple). Чертеж, который я делаю сам в drawLayer: inContext:.
Вот фрагмент кода из MyScrollViewController:
- (void)loadView {
CGRect frame = [UIScreen mainScreen].applicationFrame;
UIScrollView *scrollView = [[UIScrollView alloc] initWithFrame:frame];
scrollView.maximumZoomScale=1.0;
scrollView.delegate = self;
... setup theContentView ...
scrollView.contentSize = theContentView.bounds.size;
scrollView.contentInset = UIEdgeInsetsMake(20, 20, 20, 20);
[scrollView addSubview:theContentView];
self.view = scrollView;
double zoomScale = 0.5; // hardcoded for testing
[scrollView setZoomScale:zoomScale animated:NO];
NSLog(@"zoomscale=%g contentview=%@ contentsize=%@", zoomScale, NSStringFromCGSize(theContentView.bounds.size), NSStringFromCGSize(scrollView.contentSize));
[scrollView release];
}
- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView
{
return theContentView;
}
Инструкция NSLog показывает правильно установленные contentSize и zoomscale...
Надеясь, что есть что-то очевидное, что мне не хватает...