Skip to content

Instantly share code, notes, and snippets.

@satococoa
Created August 22, 2012 04:48
Show Gist options
  • Select an option

  • Save satococoa/3422347 to your computer and use it in GitHub Desktop.

Select an option

Save satococoa/3422347 to your computer and use it in GitHub Desktop.
iPhone標準の写真アプリみたいに選択するとチェックマークが付くUIImageView
class SelectableImageView < UIImageView
include BW::KVO
attr_accessor :is_selected
def initWithFrame(rect)
super
@is_selected = false
observe(self, :is_selected) do |old_val, new_val|
if old_val != new_val
if new_val
addSubview(cover_view)
addSubview(check_view)
else
cover_view.removeFromSuperview
check_view.removeFromSuperview
end
end
end
self
end
def dealloc
unobserve_all
super
end
def select!
self.is_selected = true
end
def deselect!
self.is_selected = false
end
def toggle_selected!
self.is_selected = !@is_selected
end
def selected?
@is_selected
end
def cover_view
@cover_view ||= UIView.new.tap do |v|
v.frame = self.bounds
v.backgroundColor = UIColor.whiteColor
v.alpha = 0.2
end
end
def check_view
@check_view ||= UIImageView.alloc.initWithImage(UIImage.imageNamed('image_check.png')).tap do |iv|
iv.frame = [
[self.frame.size.width-25, self.frame.size.height-25],
[25, 25]
]
iv.opaque = false
end
end
end
@satococoa

Copy link
Copy Markdown
Author

BubbleWrapとチェックマークのPNG画像が必要。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment