Main.storyboard

Main.storyboard


<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="5053" systemVersion="13D65" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" initialViewController="vXZ-lx-hvc">
<dependencies>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="3733"/>
</dependencies>
<scenes>
<!--View Controller-->
<scene sceneID="ufC-wZ-h7g">
<objects>
<viewController id="vXZ-lx-hvc" customClass="LWTViewController" sceneMemberID="viewController">
<view key="view" contentMode="scaleToFill" id="kh9-bI-dsS">
<rect key="frame" x="0.0" y="0.0" width="320" height="480"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
<subviews>
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" id="tF8-9P-CEF">
<rect key="frame" x="0.0" y="0.0" width="320" height="480"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
</imageView>
</subviews>
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/>
</view>
<connections>
<outlet property="imageView" destination="tF8-9P-CEF" id="Hph-ej-7S9"/>
</connections>
</viewController>
<placeholder placeholderIdentifier="IBFirstResponder" id="x5A-6p-PRh" sceneMemberID="firstResponder"/>
</objects>
</scene>
</scenes>
<simulatedMetricsContainer key="defaultSimulatedMetrics">
<simulatedStatusBarMetrics key="statusBar"/>
<simulatedOrientationMetrics key="orientation"/>
<simulatedScreenMetrics key="destination"/>
</simulatedMetricsContainer>
</document>

LWTViewController.h


#import <UIKit/UIKit.h>

@interface LWTViewController : UIViewController

@end

LWTViewController.m


 1 //
2 // LWTViewController.m
3 // Quartz2D练习 -- 绘制水印的image分类
4 //
5 // Created by apple on 14-6-10.
6 // Copyright (c) 2014年 lwt. All rights reserved.
7 //
8
9 #import "LWTViewController.h"
10 #import "UIImage+WaterStain.h"
11
12 @interface LWTViewController ()
13 @property (weak, nonatomic) IBOutlet UIImageView *imageView;
14
15 @end
16
17 @implementation LWTViewController
18
19 - (void)viewDidLoad
20 {
21 [super viewDidLoad];
22 // Do any additional setup after loading the view, typically from a nib.
23
24 UIImage *newImage = [UIImage imageWithImageName:@"scene" waterStainIconName:@"logo"];
25 UIImage *newImage1 = [UIImage imageWithImageName:@"scene" waterStainNSString:@"我是水印" CGSize:CGSizeMake(MAXFLOAT, MAXFLOAT) font:[UIFont systemFontOfSize:7.0] padding:5];
26
27 /*
28 // 测试图片效果
29 self.imageView.image = newImage;
30 self.imageView.frame = CGRectMake(50, 50, imageX, imageY);
31 */
32 // 保存图片
33 // 将图片传承二进制数据
34 NSData *data = UIImagePNGRepresentation(newImage);
35 NSData *data1 = UIImagePNGRepresentation(newImage1);
36
37 // 保存图片的地址
38 NSString *path = [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject] stringByAppendingPathComponent:@"waterStain.png"];
39 NSString *path1 = [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject] stringByAppendingPathComponent:@"waterStain1.png"];
40
41 NSLog(@"%@",path);
42
43 // 保存图片
44 [data writeToFile:path atomically:YES];
45 [data1 writeToFile:path1 atomically:YES];
46
47 }
48
49 @end

UIImage+WaterStain.h


//
// UIImage+WaterStain.h
// Quartz2D练习 -- 绘制水印的image分类
//
// Created by apple on 14-6-10.
// Copyright (c) 2014年 lwt. All rights reserved.
//

#import <UIKit/UIKit.h>

@interface UIImage (WaterStain)
/**
* 给图片添加左上角图片水印
*
* @param imageName 要添加水印的图片
* @param iconName 水印图片
*
* @return 添加了水印的图片
*/
+ (UIImage *)imageWithImageName:(NSString *)imageName waterStainIconName:(NSString *)iconName;
/**
* 给图片右下角添加文字图片水印
*
* @param imageName 要添加水印的图片
* @param waterStr 添加的水印文字
* @param maxSize 文字最大范围
* @param textFont 字体大小
* @param padding 文字的内边距
*
* @return 添加了水印的图片
*/
+ (UIImage *)imageWithImageName:(NSString *)imageName waterStainNSString: (NSString *)waterStr CGSize:(CGSize)maxSize font: (UIFont *)textFont padding: (CGFloat)padding;

@end

UIImage+WaterStain.m


//
// UIImage+WaterStain.m
// Quartz2D练习 -- 绘制水印的image分类
//
// Created by apple on 14-6-10.
// Copyright (c) 2014年 lwt. All rights reserved.
//

#import "UIImage+WaterStain.h"
#import "NSString+Extension.h"

@implementation UIImage (WaterStain)

+ (UIImage *)imageWithImageName:(NSString *)imageName waterStainIconName:(NSString *)iconName
{
UIImage *image = [UIImage imageNamed:imageName];

CGFloat imageX = image.size.width;
CGFloat imageY = image.size.height;

// 创建bigmap图形上下文
UIGraphicsBeginImageContextWithOptions(image.size, NO, 0);

// 绘制图片
[image drawInRect:CGRectMake(0, 0, imageX, imageY)];

CGFloat margin = 10;

// 绘制图片水印
UIImage *icon = [UIImage imageNamed:iconName];

CGFloat iconX = imageX - icon.size.width - margin;
CGFloat iconY = margin;
CGFloat iconW = icon.size.width;
CGFloat iconH = icon.size.height;
// 绘制水印图片
[icon drawInRect:CGRectMake(iconX, iconY, iconW, iconH)];

// 获取绘制的图片
UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();

return newImage;
}

+ (UIImage *)imageWithImageName:(NSString *)imageName waterStainNSString:(NSString *)waterStr CGSize:(CGSize)maxSize font:(UIFont *)textFont padding:(CGFloat)padding
{
UIImage *image = [UIImage imageNamed:imageName];

CGFloat imageX = image.size.width;
CGFloat imageY = image.size.height;

// 创建bigmap图形上下文
UIGraphicsBeginImageContextWithOptions(image.size, NO, 0);

// 绘制图片
[image drawInRect:CGRectMake(0, 0, imageX, imageY)];

// 绘制文字水印
NSString *str = waterStr;
// 获取文字的尺寸
CGSize size = [str sizeWithFont:textFont andMaxSize:maxSize];
// 获取文字位置
CGFloat strX = imageX - size.width - padding;
CGFloat strY = imageY - size.height - padding;

NSMutableDictionary *dicts = [NSMutableDictionary dictionary];
dicts[NSForegroundColorAttributeName] = [UIColor orangeColor];
dicts[NSFontAttributeName] = textFont;
// 绘制水印文字
[str drawAtPoint:CGPointMake(strX, strY) withAttributes:dicts];

// 获取绘制的图片
UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();

return newImage;
}

@end

NSString+Extension.h


#import <Foundation/Foundation.h>

@interface NSString (Extension)

- (CGSize)sizeWithFont:(UIFont *)font andMaxSize: (CGSize)maxSize;

@end

NSString+Extension.m


#import "NSString+Extension.h"

@implementation NSString (Extension)

- (CGSize)sizeWithFont:(UIFont *)font andMaxSize:(CGSize)maxSize
{
NSDictionary *dict = @{NSFontAttributeName : font};
CGSize size = [self boundingRectWithSize:maxSize options:NSStringDrawingUsesLineFragmentOrigin attributes:dict context:nil].size;
return size;
}

@end

Main.storyboard,布布扣,bubuko.com

时间: 2024-08-26 05:39:42

Main.storyboard的相关文章

XCODE中使用Main.Storyboard拉入控件并实现事件(Swift语言)

如何在XCODE中的Main.Storyboard内拉入控件并实现一个简单的效果呢?本人由于刚接触Swift语言不久,对于IDE的操作还是很生疏,不懂了就在网上参考了网上前辈们的文章.以下我将演示如何用Swift语言配合Main.Storyboard演示一个小例子,对于新建一个SingleView Application在这里就不多说了. 创建好的应用程序已经自动创建好了一个和Main.Storyboard连接好的ViewController. 接下来我们在Main.Storyboard中的Vi

不使用Main.storyboard

今天学习ios,但是发现创建的工程里面总是使用了Main.storyboard,那么如果想编码实现怎么办? 1.删除Main storyboard file base name 位于Supporting Files中的Info.plist 2.在AppDelegate的- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 方法中实现如

iOS 给Main.storyboard 添加button 事件《转》

XCODE中使用Main.Storyboard拉入控件并实现事件(Swift语言) 如何在XCODE中的Main.Storyboard内拉入控件并实现一个简单的效果呢?本人由于刚接触Swift语言不久,对于IDE的操作还是很生疏,不懂了就在网上参考了网上前辈们的文章.以下我将演示如何用Swift语言配合Main.Storyboard演示一个小例子,对于新建一个SingleView Application在这里就不多说了. 创建好的应用程序已经自动创建好了一个和Main.Storyboard连接好

iOS学习之移除Main.storyboard

每次使用Single View Application模板创建工程之后,总是会有一个Main.storyboard文件,那么,当我们使用代码布局的时候,很显然是不需要它的.那么,如何将它从工程中移除呢?只要进行如下几步即可. 在工程配置中移除关联 在TARGETS中,将Main InInterface选项中的值清空并保存设置. 移除Main.storyboard中的关联文件 选择storyboard文件.将类关联文件项清空并保存设置. 移除Main.storyboard文件 从工程中移除文件.

Swift 删除 Main.storyboard 和 LaunchScreen.storyboard

第一步: 右键选中Main.storyboard —- delete —— Move to Trash LaunchScreen同理 第二步 点击工程名,就是最顶级目录 右侧出现general选项卡 将Deployment info组内的Main Interface设为空 将App Icons and Launch Images 组内的 Launch Images Source设置为资源文件 (这一步很重要,如果不设置启动页,上下就会出现黑边,无法适配iPhone5等大屏幕) 第三步 打开inf

Main.storyboard中使用navigationController

传统使用navigationController的创建是在appdelegate中,使用storyboard的话必须在Main.storyboard文件中创建. 1.选中创建的navigationController的viewcontroller 2.选择Editor -> Embedin -> Navigation Controller(同样实用tabbarController) 这样我们就可以在viewController中使用 [self.navigationController pus

Xcode6/Xcode7中如何去掉默认的Main.storyboard for swift语言

有很多人还想用代码来实现UI的布局,去除Main.storyboard的有三步: 首先如图打开工程下面Supporting Files下面的Info.plist 删除下面所指的一行 其次找到工程的TAGETS/General/Deployment Info 如下图,删除Main. 经过上面两步算是删除了工程对Main.storyboard的依赖,但是运行工程后会发现是黑屏 我们在AppDelegate类里做个修改

Xcode6中如何去掉默认的Main.storyboard

xcode 6取消了 Empty Application 模板来创建一个工程,创建出来的有工程多了Main.storyboard,默认加载Main.storyboard,但是有很多人还想用代码来实现UI的布局,去除Main.storyboard的有三步: 首先如图打开工程下面Supporting Files下面的Info.plist 删除下面所指的一行 其次找到工程的TAGETS/General/Deployment Info 如下图,删除Main. 经过上面两步算是删除了工程对Main.sto

Main.storyboard绑定viewController

Main.storyboard绑定viewController,如果是新建的viewController,跟storyboard没有联系,就要分2步来绑定. 1).首先创建新的viewController,然后删除Main.storyboard中的控制器,添加上与新建的viewController相同类型的控制器, 然后修改控制器的controller的class = 新建的viewController的名字 2).在StoryBoard中view controller设置Initial Sce