こんにちわ。
eee_nbnbです。
今回CordovaのImagepicker使う機会が合ったので導入して試してたんですけど、
悲しいことにiOSの方でラベルがずれたりプレビューの画像が大きくなったりと頭を抱えて悲しい気持ちでふて寝しました。
いわゆるバグと言うやつです。
まあ <input type="input" multiple>
を使えば複数選択できるしそれでも良いかなと思ってたんですけど枚数の指定などをしたかったのでこのプラグインを使うことにしました。
とりあえずソースコードを見る
objective-cを書いたことがないしがないエンジニアでしたがswiftでiosのアプリを作ってたことがあってなんとなくiosのUIKit周りは覚えていました。
ズレるラベルたち
最初に対面したバグはUITableViewのセルを選択したときに中のラベルがずれるバグです。
多分セル側の問題だろうとのことでいろいろ見てたら GMAlbumsViewCell.m
がTableViewCellなのがわかりました。
setSelected
あたりが問題な気がしたのでとりあえずアニメーションを消します。
- (void)setSelected:(BOOL)selected animated:(BOOL)animated
{
//[super setSelected:selected animated:animated];
// Configure the view for the selected state
}
とりあえずラベルはずれなくなったのですが今度はハイライトの時ずれるのでハイライト時のコードを付け足します。
- (void)setHighlighted:(BOOL)highlighted animated:(BOOL)animated {
if( highlighted ) {
[self setBackgroundColor:[UIColor lightGrayColor]];
} else {
[self setBackgroundColor:[UIColor whiteColor]];
}
}
overrideしてすべてを無にして上書きですね。最高です。
なんか大きくなる画像達
何度か画像を選択したり外したりしてるとなんか画像が大きくなって表示が崩れます。結構地獄です。
これはホントに謎過ぎてお家に帰りたくなりましたが、これはUIGridViewで作られていてどうやらまたセルが怪しい気がして GMGridViewCell.m
を見ます。
- (id)initWithFrame:(CGRect)frame
で何やらごちゃごちゃレイヤーを重ねていました。
リサイズされている気がしてUIImageViewにはautoresizingMask
とtranslatesAutoresizingMaskIntoConstraints
いうプロパティがあるのでこの辺をコメントアウトします。
//_imageView.translatesAutoresizingMaskIntoConstraints = NO;
//_imageView.autoresizingMask = UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth;
なんかうまく行きました。なんか。
今後
もうちょいちゃんとしてからPR投げます。多分。