-2

このカレンダーを Titanium SDK に使用しています。私がする必要があるのは、サーバーから日付のリストを取得することです。カレンダーの日付にイベントがある場合は、それを表す画像をタイルに追加します。日を取得できますが、問題は、その日が日付に固有のものではないことです。たとえば、取得した日付が 2012 年 8 月 12 日だった場合、その日は 8 になります。コードで画像を次のように設定すると、次のようになります。

calendar.setImage(eventDay, 'path/to/image');

12 月 8 日だけでなく、毎月 8 日を設定します。

カレンダー コントローラの setImage 関数は次のとおりです。

exports.setImage = function(day,image, options) {
      var _ref3;

      if (options == null) {
          options = {};
      }

      if (moment.isMoment()) {
          day = day.date();
      }

      tile = (_ref3 = $.calendar) != null ? _ref3["" + day] : void 0;

      if ((tile != null ? tile.date : void 0) != null) {
          tile.remove(tile.children[0]);
              _.extend(tile, {
              _isEntry: true
          }, options);

          return tile.add(Ti.UI.createImageView({
               image: image,
               width: TILE_WIDTH,
               height: TILE_WIDTH,
               touchEnabled: true
         }));
      }
};

月と年を受け入れるようにコードを変更してから、追加の変数を _ref3 変数に追加しようとしましたが、まったく機能しませんでした。

4

2 に答える 2

0

このコントロールは、一度に 1 か月だけ機能するように見えます。

サンプルコードを見てください。doPrevMonthカレンダーが削除され、 関数と関数で再作成されることを確認してくださいdoNextMonth

特定のセルの画像を設定しているため、日番号で参照されます。これをクリアするか、月を変更するたびに再設定する必要があります。

言い換えれば、この特定のコントロールは 1 か月を超えて機能しないため、あなたの質問は意味がありません。タイトルもあなたが求めているものと一致しません。

カレンダーを描画するたびにすでにこれを行っている場合は、入力された日付が表示している月と一致することを確認してください。

于 2013-07-11T17:37:34.057 に答える
0

Alloy ieで組み込みライブラリを使用する

require('alloy/moment');

Moment.js は、時間固有の表示を処理するための便利なライブラリです。

于 2015-05-07T11:55:04.983 に答える