(Swift)UIStepperを使用したUIImageのリサイズ方法について
解決済
回答 1
投稿
- 評価
- クリップ 0
- VIEW 1,014
前提・実現したいこと
Xcode7.2のSwiftを使用して,アプリケーションの制作を行っています.
Stepperを使用して,画像(UIImage)の大きさを変更を試みています.
アプリの内容はスタンプカメラとほぼ同じ物です.
(端末のライブラリから画像を取得→画面上(ImageView)に配置→スタンプのリストからスタンプ(UIImage)を選択→選択したスタンプを先の画像(ImageView)の上(CanvasView)に配置といった流れです.
発生している問題・エラーメッセージ
コード内でエラーは発生していませんが,シミュレータを起動し,Stepperの値を変更してもスタンプ画像の大きさに反映されません.
他にどのような処理を加えれば反映されるようになるのかアドバイスお願いします.
該当のソースコード
*配置するスタンプを選択した直後の処理
override func viewWillAppear(animated: Bool) {
【viewWillappearを上書きするときに必要な処理】
super.viewWillAppear(animated)
【新規スタンプ画像フラグがtrueの場合、実行する処理】
if appDelegate.isNewStampAdded == true {
【stampArrayの最後に入っている要素を取得】
let stamp = appDelegate.stampArray.last!
【スタンプのフレームを設定】
stamp.frame = CGRectMake(0, 0, 80, 80)
【スタンプの設置座標を写真画像の中心に設定】
stamp.center = mainImageView.center
【スタンプのタッチ操作を許可】
stamp.userInteractionEnabled = true
【スタンプを自分で配置したViewに設置】
canvasView.addSubview(stamp)
【新規スタンプ画像フラグをfalseに設定】
appDelegate.isNewStampAdded = false
}
}
*スタンプ画像のリサイズ
*スタンプの高さ変更
@IBOutlet weak var stepperHeight: UIStepper!
@IBAction func changeStepperHeight(sender: UIStepper) {
【スタンプが1つ以上あれば処理を実行】
if canvasView.subviews.count > 1 {
【最後に選択したスタンプを取得】
let SelectedStamp = canvasView.subviews.last! as! Stamp
let rect:CGRect = CGRect(x:0, y:0, width:80, height:80+sender.value)
SelectedStamp.frame = rect;
canvasView.addSubview(SelectedStamp)
}
}
*スタンプの幅変更
@IBOutlet weak var stepperWidth: UIStepper!
@IBAction func changeStepperWidth(sender: UIStepper) {
if canvasView.subviews.count > 1 {
let SelectedStamp = canvasView.subviews.last! as! Stamp
let rect:CGRect = CGRect(x:0, y:0, width:80+sender.value, height:80)
SelectedStamp.frame = rect;
canvasView.addSubview(SelectedStamp)
}
}
-
気になる質問をクリップする
クリップした質問は、後からいつでもマイページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
クリップを取り消します
-
良い質問の評価を上げる
以下のような質問は評価を上げましょう
- 質問内容が明確
- 自分も答えを知りたい
- 質問者以外のユーザにも役立つ
評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。
質問の評価を上げたことを取り消します
-
評価を下げられる数の上限に達しました
評価を下げることができません
- 1日5回まで評価を下げられます
- 1日に1ユーザに対して2回まで評価を下げられます
質問の評価を下げる
teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。
- プログラミングに関係のない質問
- やってほしいことだけを記載した丸投げの質問
- 問題・課題が含まれていない質問
- 意図的に内容が抹消された質問
- 過去に投稿した質問と同じ内容の質問
- 広告と受け取られるような投稿
評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。
質問の評価を下げたことを取り消します
この機能は開放されていません
評価を下げる条件を満たしてません
質問の評価を下げる機能の利用条件
この機能を利用するためには、以下の事項を行う必要があります。
- 質問回答など一定の行動
-
メールアドレスの認証
メールアドレスの認証
-
質問評価に関するヘルプページの閲覧
質問評価に関するヘルプページの閲覧
15分調べてもわからないことは、teratailで質問しよう!
- ただいまの回答率 88.10%
- 質問をまとめることで、思考を整理して素早く解決
- テンプレート機能で、簡単に質問をまとめられる