欢迎来到千学网!
您现在的位置:首页 > 实用文 > 其他范文

IOS 类似于网易新闻首页新闻轮播的组件

时间:2023-06-02 09:08:10 其他范文 收藏本文 下载本文

下面是小编给大家整理的IOS 类似于网易新闻首页新闻轮播的组件,本文共4篇,欢迎大家借鉴与参考,希望对大家有所帮助。

IOS 类似于网易新闻首页新闻轮播的组件

篇1:IOS 类似于网易新闻首页新闻轮播的组件

、需求分析

1、可横向循环滚动新闻图片

2、滚动到对应图片时显示新闻标题

3、每张新闻图片可点击

4、有pageControl提示

5、具有控件的扩展能力

二、设计实现

1、显示图片使用SDWebImage第三方库,可缓存图片、通过url异步加载图片

2、使用一个横向滚动的UITableView实现循环滚动

3、使用一个黑色半透明的背景、白色文字的UILabel显示标题

4、定义每个新闻的数据结构:

/** @brief 默认使用本地地址,如果本地没有的话,使用网络图片 */

@interface PhotoNewsModel : NSObject

/** @brief 加载时展示的图片*/

@property (nonatomic, strong) UIImage *loadingImage;

/** @brief 图片本地的地址 */

@property (nonatomic, strong) NSString *localPath;

/** @brief 新闻图片的地址 */

@property (nonatomic, strong) NSString *photoUrl;

/** @brief 新闻标题 */

@property (nonatomic, strong) NSString *title;

@end

5、代理协议:

@protocol UIPhotoNewsViewDelegate

/**

* 取得多少条图片新闻

*

* @param photoNews 控件自身

*

* @return 图片新闻的个数

*/

- (NSUInteger)photoNewsCount:(UIPhotoNewsView *)photoNews;

/**

* 返回第几个图片新闻的model

*

* @param photoNews 控件自身

* @param index

*

* @return 返回描述图片新闻的model

*/

- (PhotoNewsModel *)photoNews:(UIPhotoNewsView *)photoNews

photoModelAtIndex:(NSUInteger)index;

/**

* 图片新闻点击的回调

*

* @param photoNews 控件自身

* @param model  点击新闻对应的model

*/

- (void)photoNews:(UIPhotoNewsView *)photoNews

photoDidClick:(PhotoNewsModel *)model;

@end

6、循环滚动如何实现

a)将要展示的数据复制一份相当于 1、2、3、4|1、2、3、4

b)数据初始化时,定位到第二份的1这里

c)滚动到前面的1或者2时,设置跳转到第二份的1和2

d)关键代码:

- (void)makeCycleScroll

{

if(self.realCount >= 2)

{

CGFloat currentOffsetX = self.contentTableView.contentOffset.x;

CGFloat currentOffSetY = self.contentTableView.contentOffset.y;

CGFloat contentHeight = self.contentTableView.contentSize.height;

if (currentOffSetY < (contentHeight / 8.0)) {

self.contentTableView.contentOffset = CGPointMake(currentOffsetX,(currentOffSetY + (contentHeight/2)));

}

if (currentOffSetY >= ((contentHeight * 6)/ 8.0)) {

self.contentTableView.contentOffset = CGPointMake(currentOffsetX,(currentOffSetY - (contentHeight/2)));

}

}

}

篇2:组件+PHP+MYSQL的新闻发布系统

mysql

var x:Number = 60;

var y:Number = 30;

System.useCodepage = true;

function inposition(myobject:Object, mylabelname:String, x0:Number, y0:Number):Void {

//返回标签的位置和标志

myobject.text = mylabelname;

myobject.move(x0, y0);

return;

}

function checkin(my_txt:Object):Boolean {

//检测输入文本是否为空

if (my_txt.text == “”) {

trace(my_txt._name+“_empty”);

return false;

} else {

trace(my_txt._name+“_nonempty”);

return true;

}

}

function clearin(my_txt) {

//清空输入文本

my_txt.text = “”;

}

function adddone {

//当数据写入完毕就显示开始的状态

_level0.myaa.addmynews.mesin._visible = 1;

//trace(myaa.addmynews.mesin._visible);

myaa.addmynews.clear1._visible = 1;

myaa.addmynews.sure1._visible = 1;

}

function loginnow() {

//登陆后的状态

trace(“back”);

//var back = myaa.inlogin.createChild(“Button”, “b1”, {label:“返回”});

//back.move(x+120, y+60);

//back.setSize(50, 20);*/

clearbtn.label = “返回”;

surebtn._visible = 0;

mynamelabel._visible = 0;

mypasslabel._visible = 0;

inmyname._visible = 0;

inmypass._visible = 0;

var newsadd = myaa.createChild(“View”, “addmynews”, {label:“.: Add news :.”});

var messages_txt = myaa.addmynews.createChild(“TextInput”, “mesin”);

//trace(typeof (inmyname.text));

var messign = myaa.addmynews.createChild(“Label”, “messigns”);

messages_txt.wordWrap = true;

inposition(messign, “News”, 25, 0);

messages_txt.move(25, 20);

messages_txt.text = “your news”;

messages_txt.setSize(250, 180);

var surebtn1 = myaa.addmynews.createChild(“Button”, “sure1”, {label:“确定”});

surebtn1.setSize(50, 20);

surebtn1.move(150, 210);

var clearbtn1 = myaa.addmynews.createChild(“Button”, “clear1”, {label:“清除”});

clearbtn1.setSize(50, 20);

clearbtn1.move(220, 210);

var addform. = new Object();

addform.click = function(eventObj) {

var nowlabel = (eventObj.target.label);

trace(nowlabel);

if (nowlabel == “确定”) {

trace(“add now”);

messages_txt._visible = 0;

clearbtn1._visible = 0;

surebtn1._visible = 0;

loadadd(“addnews”, messages_txt.text);

} else if (nowlabel == “清除”) {

clearin(messages_txt);

//testa.removeMovieClip();

trace(“clear”);

}

};

surebtn1.addEventListener(“click”, addform);

clearbtn1.addEventListener(“click”, addform);

}

function loginout() {

//退出后的状态,返回原来的

myloading.move(0, 0);

inmyname._visible = 1;

inmypass._visible = 1;

inmyname.text = “”;

inmypass.text = “”;

surebtn._visible = 1;

mynamelabel._visible = 1;

mypasslabel._visible = 1;

clearbtn.label = “清除”;

myloading.text = “”;

myaa.destroyChildAt(myaa.numChildren-1);

}

var root = this;

addphp = new LoadVars();

function loadadd(url:String, mes:String) {

//写入的数据

var loading1 = myaa.addmynews.createChild(“Label”, “loadings”);

loading1.autoSize = true;

trace(loading1);

inposition(loading1, “ loading\nplease wait...”, 115, 90);

addphp.messages = mes;

//loginnow();

addphp.onLoad = function(success) {

if (success) {

addphp.messages = mes;

adddone();

loading1.text = “”;

trace(“done”);

} else {

trace(“no”);

//testa = myaa.inlogin.createChild(“Button”, “test”, {label:myphp.name0});

}

};

addphp.sendAndLoad(url+“.php”, addphp, “POST”);

//

}

myphp = new LoadVars();

function loadphp(url:String, myname0:String, mypass0:String) {

myloading.text = “loading data...”;

//loginnow();

myphp.onLoad = function(success) {

if (success) {

myloading.text = “”;

//trace(“load done”);

//检验登陆

if (myname0 == myphp.name0 && mypass0 == myphp.passwords) {

//trace(“ok”);

loginnow();

myloading.move(70, 50);

myloading.text = “welcome ”+myphp.name0;

//testa = myaa.inlogin.createChild(“Button”, “clear”, {label:“fit”});

} else {

inmyname.text = “”;

inmypass.text = “”;

trace(“no”);

//testa = myaa.inlogin.createChild(“Button”, “test”, {label:myphp.name0});

}

}

};

myphp.sendAndLoad(url+“.php”, myphp, “POST”);

//

}

var root = this;

myaa.createChild(“View”, “innew”, {label:“.: News :.”});

myaa.createChild(“View”, “inlogin”, {label:“.: Login :.”});

myaa.createChild(“View”, “coming”, {label:“.: Coming soon :.”});

var mynamelabel = myaa.inlogin.createChild(“Label”, “myname”);

inposition(mynamelabel, “name:”, x, y);

var myloading = myaa.inlogin.createChild(“Label”, “loading”);

myloading.autoSize = true;

myloading.text = “”;

var mypasslabel = myaa.inlogin.createChild(“Label”, “mypass”);

inposition(mypasslabel, “password:”, x, y+32);

var copyright = myaa.inlogin.createChild(“Label”, “copy”);

copyright.autoSize = true;

copyright.move(75, 200);

copyright.text = “Copyright ?ShuhanKuang\n All Rights Reserved”;

var inmyname = myaa.inlogin.createChild(“TextInput”, “namein”);

//trace(typeof (inmyname.text));

inmyname.move(x+65, y);

var inmypass = myaa.inlogin.createChild(“TextInput”, “passin”);

inmypass.password = true;

inmypass.move(x+65, y+30);

var surebtn = myaa.inlogin.createChild(“Button”, “sure”, {label:“登陆”});

surebtn.setSize(50, 20);

surebtn.move(x+60, y+60);

var clearbtn = myaa.inlogin.createChild(“Button”, “clear”, {label:“清除”});

clearbtn.setSize(50, 20);

clearbtn.move(x+120, y+60);

var loginform.:Object = new Object();

myaa.selectedIndex = 1;

loginform.click = function(eventObj) {

//从标签来取的动作

var nowlabel = (eventObj.target.label);

trace(nowlabel);

if (nowlabel == “登陆”) {

if (checkin(inmyname) && checkin(inmypass)) {

trace(“Load php now”);

loadphp(“checkmeb”, inmyname.text, inmypass.text);

}

} else if (nowlabel == “清除”) {

clearin(inmyname);

clearin(inmypass);

//testa.removeMovieClip();

trace(“clear”);

} else if (nowlabel == “返回”) {

loginout();

}

};

surebtn.addEventListener(“click”, loginform);

clearbtn.addEventListener(“click”, loginform);

/////////////////news////////

var newinfo = myaa.innew.createChild(“TextArea”, “newarea”);

newinfo.move(2, 2);

newinfo.hScrollPolicy = “off”;

newinfo.wordWrap = true;

newinfo.editable = false;

//newinfo.backgroundColor = 0x123456;

newinfo.multiline = true;

newinfo.setSize(294, 250);

var mynewsinfo = new LoadVars();

loadnews(“show”);

function loadnews(url:String) {

//载入新闻的内容

//trace(1111111111)

mynewsinfo.onLoad = function(success) {

if (success) {

newinfo.text = mynewsinfo.messages;

}

};

mynewsinfo.load(url+“.php?”+random(99999), mynewsinfo, “POST”);

//

}

myaachage = new Object();

myaachage.change = function(eventObj) {

if (eventObj.target.selectedIndex == 0) {

loadnews(“show”);

}

};

myaa.addEventListener(“change”, myaachage);

///////////////////////我这里没做太多的解释了,因为组件的应用都是在自带的帮助可以找到的,

组件+PHP+MYSQL的新闻发布系统

//////////////////

里面有了MYSQL了。。。

你用phpMyAdmin运行就可以了。

[下载原文件]

篇3:如何在ESPCMS首页添加像新闻推荐那样的栏目

1. 进入ESPCMS企业网站系统后台,“内容”—“内容模型管理”

2. 点击添加内容模型

3. 填写模型名称,选择“个性化设置”,这个可以参考新闻模型的设置

4. 点击菜单栏“内容”—“分类管理”

5. 点击“添加主分类”,选择所属模型为你刚创建的模型,填写上分类名称,OK,之后再发布一条内容,此处大家都会,就省略了。

6. 打开templatesdefaultcnindex.html

class=“spantitle”>新闻推荐更多 {%get name=list class=mid:1,max:7%} {%forlist from=$array key=i%} {%$array[i].title%} {%/forlist%} {%/get%}

把上面这段代码复制到下面,然后修改两个地方:

一是把下面代码里面的class=4的数值,改为分类的id数值,可以去“内容”—“分类管理”查看,

更多

二是把下面这段代码里面的mid:1的数值,改为模型的id值,可以去“内容”—“内容模型管理”查看。另外max:7,这个数值是显示的条数。

{%get name=list class=mid:1,max:7%}

OK,搞定!

篇4:令人震撼:哈佛大学图书馆凌晨4点半的景象-网易新闻论坛

令人震撼:哈佛大学图书馆凌晨4点半的景象-网易新闻论坛

令人震撼:哈佛大学图书馆凌晨4点半的景象 作者:赏心悦目 哈佛的毕业生有一个传统:捐助哈佛。哈佛的资金三分之一来自捐助。很多学生的家长,也都是哈佛校友哈佛人。一代一代的哈佛人,进入社会上层又把财富反馈给母校哈佛。每年的捐款,是哈佛收入的重要部分。 给予往往是相互的。是先有哈佛的给予还是先有给予哈佛,这个问题或如鸡生蛋还是蛋生鸡那样说不清。或者只有让哈佛告诉你。 哈佛没有高楼大厦,只有新英格兰的'红砖墙。即使诺贝尔奖获得者也不过在校园有一个决不起眼的停车位。毕竟哈佛最起眼的是100座图书馆,尤其是一个个像图书馆那样的人,或者说,一个人就是一座图书馆。哈佛或哈佛人是不需要任何包装的。 有人称史华慈是哈佛的一位类似东方的大儒,在他动过癌症手术的82岁高龄的时候,依然天天早上按时去办公室工作,即使有时要倒下。而他办公室里挂大衣的两个衣架,竟是用铁丝胡乱缠绕而成的。 某教授对学生说,你学我这门课,你就一天只能睡两小时。学生想,那么,我学四门课,我就没有睡眠时间了,我就得倒贴睡眠时间了。 哈佛的博士生,可能每3天要啃下一本大书,每本几百页,还要交上阅读报告。哈佛过桥便是波士顿,前人类学系主任张光直在哈佛读博士那几年,没有上过桥没有去过波士顿。 哈佛学生或是哈佛教授,首先不是一份荣誉,而是一种证明。 人到底可以有怎样的意志力,人到底可能有怎样的发挥潜力? 哈佛告诉你。 哈佛是一种象征,最高智慧的象征,最高学府的象征。 人的意志,人的才情,人的理想,为什么在哈佛能兑现? 哈佛告诉你。 哈佛的学生餐厅,很难听到说话的声音,每个学生端着比萨可乐坐下后,往往顺手把大衣扔地上,然后边吃边看书或是做笔记。我就没见过哪个学生光吃不读的,更没见过哪个学生边吃边闲聊的。感觉里,餐厅不过是一个可以吃东西的图书馆,是哈佛正宗100个图书馆之外的另类图书馆。 哈佛的医院,同样的宁静,同样的不管有多少候诊的人也无一人说话,无一人不在阅读或记录。医院实在也只是图书馆的延伸。 于是DD 哈佛产生的诺贝尔奖得主有33位。 哈佛产生的美国总统有7位。 哈佛校园里,不见华服,不见化妆,更不见晃里晃荡,只有匆匆的脚步,坚实地写下人生的篇章。 哈佛不是神话,哈佛只是一个证明,人的意志、精神、怀抱、理想的证明。 英国媒体报道,《2009年世界大学排行榜》10月8日产生,哈佛大学蝉联6年排名榜首。

新闻稿件

摘抄新闻

征文活动新闻

新闻介绍信

新闻稿子

新闻写作

新闻报告

新闻通讯稿

新闻作文

新闻 作文

《IOS 类似于网易新闻首页新闻轮播的组件(集锦4篇).doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式

点击下载本文文档