도쿄 디즈니랜드

사진 2017.08.20 22:58 Posted by 파란크리스마스

저작자 표시
신고

오다이바 - 오오에도 온천

사진 2017.08.20 22:55 Posted by 파란크리스마스

후지TV

레인브릿지

오바디바 자유의 여신상

오오에도 온천

타코야키 박물관

비너스포트

저작자 표시
신고

Raspberry Pi - HC-SR04 (초음파센서)로 거리측정하기

OS/Raspberry Pi 2017.08.19 12:26 Posted by 파란크리스마스

출처 : Using a Raspberry Pi distance sensor (ultrasonic sensor HC-SR04)

배선

Python 소스

<#Libraries
import RPi.GPIO as GPIO
import time
 
#GPIO Mode (BOARD / BCM)
GPIO.setmode(GPIO.BCM)
 
#set GPIO Pins
GPIO_TRIGGER = 23
GPIO_ECHO = 24
 
#set GPIO direction (IN / OUT)
GPIO.setup(GPIO_TRIGGER, GPIO.OUT)
GPIO.setup(GPIO_ECHO, GPIO.IN)
 
def distance():
    # set Trigger to HIGH
    GPIO.output(GPIO_TRIGGER, True)
 
    # set Trigger after 0.01ms to LOW
    time.sleep(0.00001)
    GPIO.output(GPIO_TRIGGER, False)
 
    StartTime = time.time()
    StopTime = time.time()
 
    # save StartTime
    while GPIO.input(GPIO_ECHO) == 0:
        StartTime = time.time()
 
    # save time of arrival
    while GPIO.input(GPIO_ECHO) == 1:
        StopTime = time.time()
 
    # time difference between start and arrival
    TimeElapsed = StopTime - StartTime
    # multiply with the sonic speed (34300 cm/s)
    # and divide by 2, because there and back
    distance = (TimeElapsed * 34300) / 2
 
    return distance
 
if __name__ == '__main__':
    try:
        while True:
            dist = distance()
            print ("Measured Distance = %.1f cm" % dist)
            time.sleep(1)
 
        # Reset by pressing CTRL + C
    except KeyboardInterrupt:
        print("Measurement stopped by User")
        GPIO.cleanup()

실행

$ python3 ultrasonic_distance.py 
Measured Distance = 191.9 cm
Measured Distance = 9.2 cm
Measured Distance = 10.5 cm
Measured Distance = 205.9 cm
Measured Distance = 25.4 cm
Measured Distance = 29.9 cm
Measured Distance = 17.1 cm
Measured Distance = 22.2 cm
Measured Distance = 10.2 cm
^CMeasurement stopped by User
저작자 표시
신고

Python - mjpeg 영상 화면에 출력

OS/Raspberry Pi 2017.08.16 00:15 Posted by 파란크리스마스

출처 : python - How to parse mjpeg http stream from ip camera? - Stack Overflow

Python - mjpeg 영상 화면에 출력

import cv2
import requests
import numpy as np

#stream = urllib.request.urlopen("http://127.0.0.1:8080/?action=snapshot")
#stream = urllib2.urlopen("http://127.0.0.1:8080/?action=snapshot")
#bytes = bytes()

while True:
    r = requests.get('http://127.0.0.1:8080/?action=snapshot"', auth=('user', 'password'), stream=True)
    if(r.status_code == 200):
        bytes = b''
        for chunk in r.iter_content(chunk_size=1024):
            bytes += chunk
            a = bytes.find(b'\xff\xd8')
            b = bytes.find(b'\xff\xd9')
            if a != -1 and b != -1:
                jpg = bytes[a:b+2]
                bytes = bytes[b+2:]
                i = cv2.imdecode(np.fromstring(jpg, dtype=np.uint8), cv2.IMREAD_COLOR)
                cv2.imshow('i', i)
                if cv2.waitKey(1) == 27:
                    exit(0)
    else:
        print("Received unexpected status code {}".format(r.status_code))


저작자 표시
신고

Arduino Uno - L298N & HC-06

OS/Arduino 2017.08.07 00:59 Posted by 파란크리스마스

출처 : [아두이노] 블루투스 모듈(HC-06) 사용하기 (설정, 문자열 전송, LED ON/OFF)

Arduino Uno - L298N & HC-06

#include <SoftwareSerial.h> //시리얼 통신 라이브러리 호출

int blueTx=3;   //Tx (보내는핀 설정)
int blueRx=2;   //Rx (받는핀 설정)

SoftwareSerial btSerial(blueTx, blueRx);  //시리얼 통신을 위한 객체선언
String myString=""; //받는 문자열

//모터드라이버핀과 아두이노의 연결번호
#define EA A0
#define EB A1
#define M_IN1 7
#define M_IN2 6
#define M_IN3 5
#define M_IN4 4

int motorA_vector = 1;//모터의 회전방향이 반대일시 0을 1로 1을 0으로 바꿔주시면 모터의 회전방향이 바뀝니다.
int motorB_vector = 1;//모터의 회전방향이 반대일시 0을 1로 1을 0으로 바꿔주시면 모터의 회전방향이 바뀝니다.

int motor_speed = 255;//모터 스피드     

const int DELAY = 1000;

void setup() {
  Serial.begin(9600);   //시리얼모니터 
  btSerial.begin(9600); //블루투스 시리얼 개방
  
  //모터관련 핀들을 출력으로 설정한다.
  pinMode(EA, OUTPUT);
  pinMode(EB, OUTPUT);
  pinMode(M_IN1, OUTPUT);
  pinMode(M_IN2, OUTPUT);
  pinMode(M_IN3, OUTPUT);
  pinMode(M_IN4, OUTPUT);

  //
  delay(3000);//3초 지연
  motorstop();
}

void loop()
{
  // selfTest();
  while(btSerial.available())  //mySerial에 전송된 값이 있으면
  {
    char myChar = (char)btSerial.read();  //mySerial int 값을 char 형식으로 변환
    myString+=myChar;   //수신되는 문자를 myString에 모두 붙임 (1바이트씩 전송되는 것을 연결)
    delay(5);           //수신 문자열 끊김 방지
  }
  if(!myString.equals(""))  //myString 값이 있다면
  {
    Serial.println("input value: "+myString); //시리얼모니터에 myString값 출력

    if (myString.equals("S")) {
      motorstop();
    } else if (myString.equals("F")) {
      forward();
    } else if (myString.equals("B")) {
      backward();
    } else if (myString.equals("L")) {
      left();
    } else if (myString.equals("R")) {
      right();
    }
    myString="";  //myString 변수값 초기화
  }
}

void selfTest()
{
   motor_con(motor_speed, motor_speed); //전진 
   //motor_con(-motor_speed, motor_speed); //좌회전
   //motor_con(motor_speed, -motor_speed); //우회전
   //motor_con(-motor_speed, -motor_speed); //후전
   delay(DELAY);
   motor_con(0, 0); //정지
   delay(DELAY);
}

void selfTest2()
{
  forward();
  delay(DELAY);
  motorstop(); delay(500);
  
  backward();
  delay(DELAY);
  motorstop(); delay(500);
  
  right();
  delay(DELAY);
  motorstop(); delay(500);
  
  left();
  delay(DELAY);
  motorstop(); delay(500);  
}

void motorstop()
{
  motor_con(0, 0); //정지
}

void backward()
{
  motor_con(-motor_speed, -motor_speed); //후전
}

void forward()
{
  motor_con(motor_speed, motor_speed); //전진 
}

// Let right motor keep running, but stop left motor
void right()
{
  motor_con(motor_speed, -motor_speed); //우회전
}

// Let left motor keep running, but stop right motor
void left()
{
  motor_con(-motor_speed, motor_speed); //좌회전
}

void motor_con(int M1, int M2){
 
 if(M1>0){  //모터A 정회전
   digitalWrite(M_IN1,motorA_vector);
   digitalWrite(M_IN2,!motorA_vector);
 }
 else if(M1<0){  //모터A 역회전
   digitalWrite(M_IN1,!motorA_vector);
   digitalWrite(M_IN2,motorA_vector);
 }
 else{        //모터 A 정지
   digitalWrite(M_IN1,LOW);
   digitalWrite(M_IN2,LOW);
 }
 
 if(M2>0){    //모터B 정회전
   digitalWrite(M_IN3,motorB_vector);
   digitalWrite(M_IN4,!motorB_vector);
 }
 else if(M2<0){  //모터B 역회전
   digitalWrite(M_IN3,!motorB_vector);
   digitalWrite(M_IN4,motorB_vector);
 }
 else{          //모터 B 정지
   digitalWrite(M_IN3,LOW);
   digitalWrite(M_IN4,LOW);
 }
 analogWrite(EA,abs(M1)); //A모터 속도값
 analogWrite(EB,abs(M2)); //B모터 속도값
}
저작자 표시
신고

Arduino Pro Mini

OS/Arduino 2017.08.06 01:42 Posted by 파란크리스마스

출처 : 라즈베리파이 USB to TTL Serial Cable 연결 :: tibyte.kr - 티바이트

Arduino Pro Mini - 시리얼 케이블 연결

흰색 선(RXD)을 라즈베리파이의 TXD핀에 연결하고,
초록 선(TXD)을 라즈베리파이의 RXD핀에 연결한다.

업로드

Arduino Pro Mini의 경우 리셋을 수동으로 해야 되므로, 컴파일전에 [리셋]버튼을 누리고 있다가, [업로드...]라고 나올때 [리셋]버튼을 때준다.

L298N 모터드라이버 제어

//모터드라이버핀과 아두이노의 연결번호
#define EA 2
#define EB 7
#define M_IN1 3
#define M_IN2 4
#define M_IN3 5
#define M_IN4 6

int motorA_vector = 1;//모터의 회전방향이 반대일시 0을 1로 1을 0으로 바꿔주시면 모터의 회전방향이 바뀝니다.
int motorB_vector = 1;//모터의 회전방향이 반대일시 0을 1로 1을 0으로 바꿔주시면 모터의 회전방향이 바뀝니다.

int motor_speed = 150; // 255;//모터 스피드     

const int DELAY = 1000;

void setup() {
  Serial.begin(9600);   //시리얼모니터 
  
  //모터관련 핀들을 출력으로 설정한다.
  pinMode(EA, OUTPUT);
  pinMode(EB, OUTPUT);
  pinMode(M_IN1, OUTPUT);
  pinMode(M_IN2, OUTPUT);
  pinMode(M_IN3, OUTPUT);
  pinMode(M_IN4, OUTPUT);

  //
  delay(3000);//3초 지연
  motorstop();
}

void loop() {
  selfTest();
}

void selfTest()
{
   motor_con(motor_speed, motor_speed); //전진 
   //motor_con(-motor_speed, motor_speed); //좌회전
   //motor_con(motor_speed, -motor_speed); //우회전
   //motor_con(-motor_speed, -motor_speed); //후전
   delay(DELAY);
   motor_con(0, 0); //정지
   delay(DELAY);
}

void motorstop()
{
  motor_con(0, 0); //정지
}

void motor_con(int M1, int M2){
 
 if(M1>0){  //모터A 정회전
   digitalWrite(M_IN1,motorA_vector);
   digitalWrite(M_IN2,!motorA_vector);
 }
 else if(M1<0){  //모터A 역회전
   digitalWrite(M_IN1,!motorA_vector);
   digitalWrite(M_IN2,motorA_vector);
 }
 else{        //모터 A 정지
   digitalWrite(M_IN1,LOW);
   digitalWrite(M_IN2,LOW);
 }
 
 if(M2>0){    //모터B 정회전
   digitalWrite(M_IN3,motorB_vector);
   digitalWrite(M_IN4,!motorB_vector);
 }
 else if(M2<0){  //모터B 역회전
   digitalWrite(M_IN3,!motorB_vector);
   digitalWrite(M_IN4,motorB_vector);
 }
 else{          //모터 B 정지
   digitalWrite(M_IN3,LOW);
   digitalWrite(M_IN4,LOW);
 }
 analogWrite(EA,abs(M1)); //A모터 속도값
 analogWrite(EB,abs(M2)); //B모터 속도값
}
저작자 표시
신고

Excel - Macro

분류없음 2017.07.23 18:41 Posted by 파란크리스마스

출처 : [엑셀] 매크로를 이용하여 지정한 크기의 셀 안에 사진 넣기 : 네이버 블로그
엑셀 메크로 그림(이미지)을 엑셀 파일에 직접 포함시키는 방법 - 달집의 팁 - 문하우스

이미지 삽입 - Excel 파일에 이미지 내장

Sub insert_Pic()
    
    Dim Pic   As Variant
    
    Pic = Application.GetOpenFilename _
                    (filefilter:="Picture Files,*.jpg;*.bmp;*.tif;*.gif;*.png;*.jpeg")
    If Pic = False Then
        Exit Sub
    End If
    
    With ActiveSheet.Shapes.AddPicture(Pic, False, True, Selection.Left, Selection.Top, Selection.Width, Selection.Height)
        .LockAspectRatio = msoFalse
    End With
    
End Sub

이미지 삽입 - Excel 파일에 이미지 경로만 저장

Sub ins_Pic()

    Dim myPic   As Variant

    myPic = Application.GetOpenFilename _
                    (filefilter:="Picture Files,*.jpg;*.bmp;*.tif;*.gif")
    If myPic = False Then
        Exit Sub
    End If
     With ActiveSheet.Pictures.Insert(myPic).ShapeRange
        .LockAspectRatio = msoFalse
        .Height = Selection.Height
        .Width = Selection.Width
        .Left = Selection.Left
        .Top = Selection.Top
    End With

End Sub
저작자 표시
신고

POI - Excel 파일 내에 이미지 추출

Programming/Java 2017.07.22 18:38 Posted by 파란크리스마스

출처 : Apache POI - the Java API for Microsoft Documents
java - Get an image and its position from excel file using Apache POI

POI로 엑셀 파일 열기

import java.io.File;
import java.io.FileInputStream;

import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

public class TestPoiMain {
	
	public static void main(String[] args) throws Exception {
		// 
		String fileName = "test1.xlsx";
		//
		File xlsFile = new File(fileName);
		
		Workbook workbook = null;
		try {
			if (xlsFile.exists()) {
				FileInputStream inputStream = new FileInputStream(xlsFile);
				workbook = new XSSFWorkbook(inputStream);

				System.out.println(workbook);
			}
		} finally {
			if (workbook != null)
				workbook.close();
		}
	}
}

POI로 Excel 파일 내에 이미지 추출

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;

import org.apache.poi.ss.usermodel.ClientAnchor;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.xssf.usermodel.XSSFDrawing;
import org.apache.poi.xssf.usermodel.XSSFPicture;
import org.apache.poi.xssf.usermodel.XSSFPictureData;
import org.apache.poi.xssf.usermodel.XSSFShape;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

public class TestPoiMain {
	
	public static void main(String[] args) throws Exception {
		// 
		String fileName = "test1.xlsx";
		String tarDir = "c:\\test";
		//
		File xlsFile = new File(fileName);
		
		Workbook workbook = null;
		try {
			if (xlsFile.exists()) {
				FileInputStream inputStream = new FileInputStream(xlsFile);
				workbook = new XSSFWorkbook(inputStream);
				
				XSSFSheet sheet = (XSSFSheet) workbook.getSheetAt(0);
				XSSFDrawing drawing = sheet.createDrawingPatriarch(); // I know it is ugly, actually you get the actual instance here
				for (XSSFShape shape : drawing.getShapes()) {
					if (shape instanceof XSSFPicture) {
						XSSFPicture picture = (XSSFPicture) shape;
						
						if (picture.getPictureData()==null) {
							System.out.println("사진 Path 사용");
							continue;
						}
						XSSFPictureData xssfPictureData = picture.getPictureData();
						ClientAnchor anchor = picture.getPreferredSize();
						int row1 = anchor.getRow1();
						int row2 = anchor.getRow2();
						int col1 = anchor.getCol1();
						int col2 = anchor.getCol2();
						System.out.println("Row1: " + row1 + " Row2: " + row2);
						System.out.println("Column1: " + col1 + " Column2: " + col2);
						// Saving the file
						String ext = xssfPictureData.suggestFileExtension();
						byte[] data = xssfPictureData.getData();
						
						FileOutputStream out = new FileOutputStream(String.format("%s\\%s_%d_%d.%s", tarDir, sheet.getSheetName(), row1, col1, ext));
						out.write(data);
						out.close();
					}
				}
			}
		} finally {
			if (workbook != null)
				workbook.close();
		}
	}
}
저작자 표시
신고

Spring MVC - ObjectMapper이용 Object to JSON 반환

Programming/Java 2017.07.16 17:13 Posted by 파란크리스마스

출처 : How to convert Java object to / from JSON (Jackson) - Mkyong
스프링3(Spring3) - @ResponseBody + jackson을 이용하여 심플하게 구현하기
Chapter16. 스프링 MVC로 REST API 사용하기 · Spring Study Group
Spring에서 JSON과 연동방법 - 와이케이의 마구잡이 - GitHub Pages
[ERROR:] cvc-complex-type.2.1: Element 'mvc ... - kkan's - Tistory

pom.xml 내용 추가

		<dependency>
			<groupId>org.codehaus.jackson</groupId>
			<artifactId>jackson-mapper-asl</artifactId>
			<version>1.9.13</version>
		</dependency>
		<dependency>
			<groupId>org.codehaus.jackson</groupId>
			<artifactId>jackson-core-asl</artifactId>
			<version>1.9.13</version>
		</dependency>

VO 객체

package com.myhome.dto;

import java.util.ArrayList;

public class JSONTest {
	
	private int id;
	private String txt;
	private ArrayList<String> list;
	private String[] arr;

	public String[] getArr() {
		return arr;
	}

	public void setArr(String[] arr) {
		this.arr = arr;
	}

	public ArrayList<String> getList() {
		return list;
	}

	public void setList(ArrayList<String> list) {
		this.list = list;
	}

	public int getId() {
		return id;
	}

	public void setId(int id) {
		this.id = id;
	}

	public String getTxt() {
		return txt;
	}

	public void setTxt(String txt) {
		this.txt = txt;
	}
}

Controller

package com.myhome.ui;

import java.io.IOException;
import java.util.ArrayList;

import org.codehaus.jackson.JsonGenerationException;
import org.codehaus.jackson.map.JsonMappingException;
import org.codehaus.jackson.map.ObjectMapper;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;

import com.myhome.dto.JSONTest;

@Controller
public class HelloController {

	@RequestMapping(value = "/jsonTest.do", method = RequestMethod.GET, produces = "application/json")
	public @ResponseBody String jsonTest() throws JsonGenerationException, JsonMappingException, IOException {
		
		// 가상의 배열및 리스트에 데이터 add
		ArrayList<String> arraylist = new ArrayList<String>();
		arraylist.add("a");
		arraylist.add("b");
		String[] array = { "a", "b", "c" };

		// VO객체에 SET한후 vo객체자체를 return
		JSONTest test = new JSONTest();
		test.setId(1);
		test.setTxt("textTxt");
		test.setList(arraylist);
		test.setArr(array);
		
		ObjectMapper mapper = new ObjectMapper();
		String jsonString = mapper.writeValueAsString(test);
		
		return jsonString;
	}
}

실행

저작자 표시
신고

Spring MVC - Object to JSON 반환

Programming/Java 2017.07.15 20:12 Posted by 파란크리스마스

출처 : 스프링3(Spring3) - @ResponseBody + jackson을 이용하여 심플하게 구현하기
Chapter16. 스프링 MVC로 REST API 사용하기 · Spring Study Group
Spring에서 JSON과 연동방법 - 와이케이의 마구잡이 - GitHub Pages
[ERROR:] cvc-complex-type.2.1: Element 'mvc ... - kkan's - Tistory

pom.xml 내용 추가

		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-web</artifactId>
			<version>${org.springframework-version}</version>
		</dependency>
		<dependency>
			<groupId>com.fasterxml.jackson.core</groupId>
			<artifactId>jackson-core</artifactId>
			<version>2.6.3</version>
		</dependency>
		<dependency>
			<groupId>com.fasterxml.jackson.core</groupId>
			<artifactId>jackson-databind</artifactId>
			<version>2.6.3</version>
		</dependency>

***-servlet.xml 내용 추가

<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:p="http://www.springframework.org/schema/p"
       xmlns:aop="http://www.springframework.org/schema/aop"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:jee="http://www.springframework.org/schema/jee"
       xmlns:mvc="http://www.springframework.org/schema/mvc"
       xmlns:tx="http://www.springframework.org/schema/tx"
       xmlns:security="http://www.springframework.org/schema/security"
       xsi:schemaLocation="http://www.springframework.org/schema/aop       http://www.springframework.org/schema/aop/spring-aop-2.5.xsd
                           http://www.springframework.org/schema/beans     http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
                           http://www.springframework.org/schema/context   http://www.springframework.org/schema/context/spring-context-2.5.xsd
                           http://www.springframework.org/schema/jee       http://www.springframework.org/schema/jee/spring-jee-2.5.xsd
                           http://www.springframework.org/schema/mvc       http://www.springframework.org/schema/mvc/spring-mvc-3.1.xsd
                           http://www.springframework.org/schema/tx        http://www.springframework.org/schema/tx/spring-tx-2.5.xsd
                           http://www.springframework.org/schema/security  http://www.springframework.org/schema/security/spring-security-2.0.xsd">

	<mvc:annotation-driven>
		<mvc:message-converters>
			<bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
				<property name="supportedMediaTypes">
					<list>
						<value>text/html;charset=UTF-8</value>
						<value>application/json;charset=UTF-8</value>
					</list>
				</property>
			</bean>
		</mvc:message-converters>
	</mvc:annotation-driven>

VO 객체

package com.myhome.dto;

import java.util.ArrayList;

public class JSONTest {
	
	private int id;
	private String txt;
	private ArrayList<String> list;
	private String[] arr;

	public String[] getArr() {
		return arr;
	}

	public void setArr(String[] arr) {
		this.arr = arr;
	}

	public ArrayList<String> getList() {
		return list;
	}

	public void setList(ArrayList<String> list) {
		this.list = list;
	}

	public int getId() {
		return id;
	}

	public void setId(int id) {
		this.id = id;
	}

	public String getTxt() {
		return txt;
	}

	public void setTxt(String txt) {
		this.txt = txt;
	}
}

Controller

package com.myhome.ui;

import java.util.ArrayList;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;

import com.myhome.dto.JSONTest;

@Controller
public class HelloController {

	@RequestMapping(value = "/jsonTest.do", method = RequestMethod.GET, produces = "application/json")
	public @ResponseBody JSONTest jsonTest() {
		
		// 가상의 배열및 리스트에 데이터 add
		ArrayList<String> arraylist = new ArrayList<String>();
		arraylist.add("a");
		arraylist.add("b");
		String[] array = { "a", "b", "c" };

		// VO객체에 SET한후 vo객체자체를 return
		JSONTest test = new JSONTest();
		test.setId(1);
		test.setTxt("textTxt");
		test.setList(arraylist);
		test.setArr(array);
		return test;
	}
}

실행

저작자 표시
신고

Swift - 외부라이브러리 사용

Programming/Swift 2017.07.01 17:15 Posted by 파란크리스마스

Swift - 외부라이브러리 사용

출처 : DLRadioButton
Seorenn SIGSEGV: Swift 프로젝트에서 Objective-C 코드를 함께 사용하기

외부라이브러리 파일 추가

파일 추가 옵션 선택

브릿지 헤더 파일 생성

브릿지 헤더 파일 설정

자동으로 설정되지만 설정이 되지 않았을 경우 아래와 같이 설정 필요

Button Type 변경

Button Type 변경 전

Button Type 변경 후

Button 라디오버튼의 경우 그룹으로 묶기

Button 라디오버튼 하나의 이벤트 생성


Button 라디오버튼 이벤트 구현

    @IBAction func optionClicked(_ sender: DLRadioButton) {
        print(sender.currentTitle!)

        if (sender == radio1) { // (sender.currentTitle == "석굴암") {
            imageView.image = image1
        } else if (sender.currentTitle == "남대문") {
            imageView.image = image2
        } else if (sender.currentTitle == "독립기념관") {
            imageView.image = image3
        }
    }
저작자 표시
신고

Swift - Layout 가운데 정렬

Programming/Swift 2017.07.01 10:07 Posted by 파란크리스마스

출처 : IOS 오토레이아웃(AUTOLAYOUT) 사용패턴1 화면 가운데 버튼 배치하기

Top, Width, Height 설정

가운데 정렬


상대 좌표 배치

수평 상대 좌표 설정

수직 상대 좌표 배치

멀티터치 옵션 설정

저작자 표시
신고


 

티스토리 툴바