IOS客户端Coding项目记录(三)

18:图片视图几种填充样式

_imgView.contentMode = UIViewContentModeScaleAspectFill;

如下:
typedef NS_ENUM(NSInteger, UIViewContentMode) {
    UIViewContentModeScaleToFill,
    UIViewContentModeScaleAspectFit,
    UIViewContentModeScaleAspectFill,
    UIViewContentModeRedraw,              // redraw on bounds change (calls -setNeedsDisplay)
    UIViewContentModeCenter,              // contents remain same size. positioned adjusted.
    UIViewContentModeTop,
    UIViewContentModeBottom,
    UIViewContentModeLeft,
    UIViewContentModeRight,
    UIViewContentModeTopLeft,
    UIViewContentModeTopRight,
    UIViewContentModeBottomLeft,
    UIViewContentModeBottomRight,
};

简单说明:
UIViewContentModeScaleToFill:表示完全填充在 frame. 里。(默认)
UIViewContentModeScaleAspectFit:保持比例,都在 frame. 内。
UIViewContentModeScaleAspectFill:保持比例,填满但 frame. 外也有。
UIViewContentModeRedraw:?   
UIViewContentModeCenter:这个 image 的中心与 frame. 的中心重合。
UIViewContentModeTop:这个 image 的上边缘与 frame. 的上边缘重合。
UIViewContentModeBottom:这个 image 的下边缘与 frame. 的下边缘重合。
UIViewContentModeLeft:这个 image 的左边缘与 frame. 的左边缘重合。
UIViewContentModeRight:这个 image 的右边缘与 frame. 的右边缘重合。
UIViewContentModeTopLeft:类似。
UIViewContentModeTopRight:类似。
UIViewContentModeBottomLeft:类似。
UIViewContentModeBottomRight:类似。

19:UIView属性clipsTobounds的应用

view添加view,并剪边(UIView属性clipsTobounds的应用)
如题,有两个view: view1,view2
view1添加view2到其中,如果view2大于view1,或者view2的坐标不在view1的范围内,view2是盖着view1的,意思就是超出的部份也会画出来

UIView有一个属性,clipsTobounds 默认情况下是NO,
如果,我们想要view2把超出的那部份隐藏起来的话,就得改变它的父视图也就view1的clipsTobounds属性值。
view1.clipsTobounds = YES;

20:CALayer常见几个设置

边框,圆角,阴影
设置圆角边框
?someView.layer.cornerRadius =4.0f;
someView.layer.masksToBounds = YES;
//设置边框及边框颜色
?someView.layer.borderWidth = 0.5f;
someView.layer.borderColor =[ [UIColor grayColor] CGColor];
?//添加四个边阴影? _imgvPhoto.layer.shadowColor = [UIColor blackColor].CGColor;? _imgvPhoto.layer.shadowOffset = CGSizeMake(0, 0);?  _imgvPhoto.layer.shadowOpacity = 0.5;? _imgvPhoto.layer.shadowRadius = 10.0;
 _ imgvPhoto.layer.masksToBounds = NO;
  //添加两个边阴影?    _imgvPhoto.layer.shadowColor = [UIColor blackColor].CGColor;?    _imgvPhoto.layer.shadowOffset = CGSizeMake(4, 4);?    _imgvPhoto.layer.shadowOpacity = 0.5;?    _imgvPhoto.layer.shadowRadius = 2.0;
说明:?①     someView  表示UIView及其之类;?②     必须引入:#import<QuartzCore/QuartzCore.h>

21:UIActionSheet弹出显示

#define kKeyWindow [UIApplication sharedApplication].keyWindow
UIActionSheet *actionSheet = [[UIActionSheet alloc] initWithTitle:nil delegate:self cancelButtonTitle:@"取消" destructiveButtonTitle:nil otherButtonTitles:@"拍照", @"从相册选择", nil];
[actionSheet showInView:kKeyWindow];

22:block回调传参的运用

有两个viewcontroller分别为a,b;其中a跳转到b,从b得到一个值,然后再跳转到a,并显示出b的值;
代码如下:
a.h
- (IBAction)otherStoryboard:(id)sender;
@property (weak, nonatomic) IBOutlet UILabel *lableInfo;

a.m

- (IBAction)otherStoryboard:(id)sender {
    UIStoryboard* mainStoryboard=[UIStoryboard storyboardWithName:@"HotelStoryboard" bundle:nil];
    HotelViewController* weathcontroller=[mainStoryboard instantiateViewControllerWithIdentifier:@"hotelStoryboard"];
    weathcontroller.block=^(NSString* InputValue)
    {
        self.lableInfo.text=InputValue;
    };
    [self presentViewController:weathcontroller animated:YES completion:^{

    }];
}

b.h
typedef void(^ChangInputText)(NSString* InputValue);
@property(copy,nonatomic)ChangInputText block;
- (IBAction)backButton:(id)sender;
@property (weak, nonatomic) IBOutlet UITextField *inputText;

b.m
- (IBAction)backButton:(id)sender {
    NSString* backsValue=self.inputText.text;
    _block(backsValue);
    [self dismissViewControllerAnimated:YES completion:^{

    }];
}

当然也可以使用一个公开的方法,然后把block伟参数直接调用,可以访问下面的网址:
http://blog.csdn.net/itpeng523/article/details/24315541

23:单例模式运用

.h

@interface Coding_NetAPIManager : NSObject
(instancetype)sharedManager;

- (void)request_Tweet_DoTweet_WithObj:(Tweet *)tweet andBlock:(void (^)(id data, NSError *error))block;
@end

.m

@implementation Coding_NetAPIManager
+ (instancetype)sharedManager {
    static Coding_NetAPIManager *shared_manager = nil;
    static dispatch_once_t pred;
    dispatch_once(&pred, ^{
        shared_manager = [[self alloc] init];
    });
    return shared_manager;
}

(void)request_Tweet_DoTweet_WithObj:(Tweet *)tweet andBlock:(void (^)(id data, NSError *error))block{    ….   }
@end

然后调用时:
        [[Coding_NetAPIManager sharedManager] request_Tweet_DoTweet_WithObj:nextTweet andBlock:^(id data, NSError *error) {

        }];

24:常见的常量

#define kKeyWindow [UIApplication sharedApplication].keyWindow
#define kScreen_Bounds [UIScreen mainScreen].bounds
#define kScreen_Height [UIScreen mainScreen].bounds.size.height
#define kScreen_Width [UIScreen mainScreen].bounds.size.width

常用的方法:

- (void)setY:(CGFloat)y{
    CGRect frame = self.frame;
    frame.origin.y = y;
    self.frame = frame;
}
- (void)setX:(CGFloat)x{
    CGRect frame = self.frame;
    frame.origin.x = x;
    self.frame = frame;
}
- (void)setHeight:(CGFloat)height{
    CGRect frame = self.frame;
    frame.size.height = height;
    self.frame = frame;
}
- (void)setWidth:(CGFloat)width{
    CGRect frame = self.frame;
    frame.size.width = width;
    self.frame = frame;
}
- (void)setSize:(CGSize)size{
    CGRect frame = self.frame;
    frame.size.width = size.width;
    frame.size.height = size.height;
    self.frame = frame;
}
+ (CGRect)frameWithOutNavTab{
    CGRect frame = kScreen_Bounds;
    frame.size.height -= (20+44+49);//减去状态栏、导航栏、Tab栏的高度
    return frame;
}
+ (CGRect)frameWithOutNav{
    CGRect frame = kScreen_Bounds;
    frame.size.height -= (20+44);//减去状态栏、导航栏的高度
    return frame;
}
时间: 2024-11-09 16:04:06

IOS客户端Coding项目记录(三)的相关文章

IOS客户端Coding项目记录(四)

1:打开Xcode,然后闪退,报加载某库出现异常 如/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/libclang.dylib 这个是Xcode的bug,我的情况是打开某个项目会出现这个问题 解决办法:这还是缓存问题,详见第五点(5.XCode5由于缓存问题引起了很多奇怪的问题,所以清除缓存有时会起到大作用:),清除缓存再运行,一切正常. 进入步骤,按option键进入

IOS客户端Coding项目记录(二)

9:第三方插件整理 JSON转实体:jsonModel https://github.com/icanzilb/JSONModel/ 美化按键:BButton https://github.com/mattlawer/BButton 状态栏提示:JDStatusBarNotification https://github.com/jaydee3/JDStatusBarNotification 照片显示插件:MJPhotoBrowser https://github.com/azxfire/MJP

IOS客户端Coding项目记录(一)

1:UITextField设置出现清除按键 self.textField.clearButtonMode = UITextFieldViewModeWhileEditing; 说明: UITextField.clearButtonMode:清空输入的字符,有以下几种模式 UITextFieldViewModeAlways,不为空,获得焦点与没有获得焦点都显示清空按钮 UITextFieldViewModeNever,不显示清空按钮 UITextFieldViewModeWhileEditing,

IOS客户端Coding项目记录(五)

1:统一修改导航栏的样式,在 AppDelegate.m中 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; // Override point for customiz

ios客户端暑期“动画屋“活动项目总结

    入职实习的这个公司,第一天就分配了任务,从零开始写一个网页,之前虽然了解一些前端知识,但从头开写还是遇到了很多问题,互联网公司讲求效率,有deadline还是比较有紧迫感的,与在实验室放羊状态有了鲜明的对比.mentor.产品经理.组里的boss.实习生同事都给我提供了非常多的帮助.此篇总结为独立完成的第一个项目的项目总结.下图是已上线活动界面效果. 项目介绍 (一).爱奇艺IOS客户端发现-活动页面中"动画屋"活动开始页面的开发     活动开始页面的开发主要需求是:    

ios客户端发现_世界杯送流量活动项目总结

   世界杯如火如荼的进行,视频网站类似于门户网站,需要快速根据外部环境更新内容.产品经理需要策划活动,并安排实施.这个活动就是在这样背景下产生的,爱奇艺与运营商合作,实现双赢.爱奇艺可以通过运营商向海量用户发送短信的方式,提高用户数,运营商通过爱奇艺视频平台给用户更多种多样的福利,提高用户黏性.   总的来说:运营商有用户,视频网站有内容.用户需要内容,有内容的需要用户,有用户的需要满足用户内容的需求.两者优点突出.需求明显合作水到渠成.另外爱奇艺将运营商作为大客户管理,保证了协同作战的机动性

搭建基于asp.net的wcf服务,ios客户端调用的实现记录

一.写wcf 问题: 1.特定的格式 2.数据绑定 3.加密解密 二.发布到iis 问题: 1.访问权限问题,添加everyone权限 访问网站时:http://localhost/WebbUploadSample/ZipUpload.aspx “/WebbUploadSample”应用程序中的服务器错误. -------------------------------------------------------------------------------- 访问被拒绝. 说明: 访问服

ios客户端发现_动画屋后期页面重构与悬浮评论分享模块开发项目总结

从"看世界杯送流量"项目,遇到响应式布局问题之后,专门钻研了这方面专业的书籍,同时阅读了相关文章.响应式布局简单的说就是使开发的页面在不同设备上都有友好的效果.而最开始"暑期动画屋"的项目,当时并没有采用响应式布局,虽然ipad上可用,其他设备则会有显示问题.这也暴露了,目前所在移动业务事业部前端的问题:    1.考虑到响应式布局在不同设备上,UI设计师只给了一套UI原型图,而在不同设备上的显示只是根据前端工程师的理解或个人偏好来完成布局.从产品经理的角度以及测试

仿新浪微博IOS客户端(v5.2.8)——搭建项目基本框架

转载请标明出处:http://blog.csdn.net/android_ls/article/details/45827719 声明:仿新浪微博项目,所用所有图片资源都来源于官方新浪微博IOS客户端,编写本应用的目的在于学习交流,如涉及侵权请告知,我会及时换掉用到的相关图片. 最近我打算利用业余时间,仿下新浪微博IOS客户端,至于能写到哪里我也不确定,能写多少就写多少吧,下面我们开始项目的基本搭建: 1.打开Xcode选择创建新项目,并创建各个模块的目录结构,完成后项目的目录结构如下图: 2.